** использовать в If / Else

способ написать код, который проверяет, является ли значение в штучной упаковке.

Мои предварительные исследования показывают, что .NET делает все возможное, чтобы скрыть этот факт, а это означает, чтоGetType() а такжеIsValueType не раскрывайте разницы между упакованным значением и распакованным значением. Например, в следующих выражениях LinqPad C # я верю, чтоo1 в штучной упаковке иi1 не в штучной упаковке, но я хотел бы, чтобы проверить его в коде, или, во-вторых, способ узнатьТОЧНО при просмотре любой переменной или значения, даже если его тип является «динамическим» или «объектом», независимо от того, упакован он или нет.

Любой совет?

// boxed? -- no way to tell from these answers!
object o1 = 123;
o1.GetType().Dump("o1.GetType()");
o1.GetType().IsValueType.Dump("o1.GetType().IsValueType");

// not boxed? -- no way to tell from these answers!
int i1 = 123;
i1.GetType().Dump("i1.GetType()");
i1.GetType().IsValueType.Dump("i1.GetType().IsValueType");

Ответы на вопрос(9)

Ваш ответ на вопрос