gpt4 book ai didi

c# - 如何从 Type 变量创建 Nullable

转载 作者:行者123 更新时间:2023-11-30 15:06:59 33 4
gpt4 key购买 nike

我正在处理表达式,我需要一个方法来接收某种类型(目前未知)的对象。像这样:

public static void Foobar(object Meh) { }

我需要的是让这个方法返回一个 Nullable<T> Meh 的版本, 但类型 T来自Meh.GetType() .所以返回将是Nullable<MehType> , 其中MehTypeMeh 的类型.

有什么想法或建议吗?

谢谢

更新:我需要这个的原因是因为这个异常:

没有为类型“System.Nullable`1[System.Int32]”和“System.Int32”定义二元运算符 Equal。

return Expression.Equal(leftExpr, rightExpr);

哪里leftExprSystem.Nullable1[[System.Int32rightExprSystem.Int32 .

最佳答案

如果您在编译时不知道类型,那么唯一的表达方式就是 object - 一旦您装箱一个可为 null 的值类型,您最终会得到一个 null引用,或装箱的不可空值类型。

因此,就结果而言,这些片段完全相同:

int? nullable = 3;
object result = nullable;

int nonNullable = 3;
object result = nonNullable;

换句话说,我认为您无法真正表达您想要做的事情。

关于c# - 如何从 Type 变量创建 Nullable<T>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7070791/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com