小编ber*_*sch的帖子

在Nullable <int>上键入检查

如果有以下方法:

static void DoSomethingWithTwoNullables(Nullable<int> a, Nullable<int> b)
{
    Console.WriteLine("Param a is Nullable<int>: " + (a is Nullable<int>));
    Console.WriteLine("Param a is int          : " + (a is int));
    Console.WriteLine("Param b is Nullable<int>: " + (b is Nullable<int>));
    Console.WriteLine("Param b is int          : " + (b is int));
}
Run Code Online (Sandbox Code Playgroud)

当我使用null作为参数调用此方法时,类型检查将为此参数返回false.例如这段代码

DoSomethingWithTwoNullables(5, new Nullable<int>());
Run Code Online (Sandbox Code Playgroud)

结果输出:

Param a is Nullable<int>: True
Param a is int          : True
Param b is Nullable<int>: False
Param b is int          : False
Run Code Online (Sandbox Code Playgroud)

有没有办法在使用Nullable并传递null时保留类型信息?我知道在这个例子中检查类型是没用的,但它说明了问题.在我的项目中,我将参数传递给另一个接受params object[]数组的方法,并尝试识别对象的类型.这个方法需要为Nullable<int>和做不同的事情 …

c#

5
推荐指数
1
解决办法
190
查看次数

标签 统计

c# ×1