gpt4 book ai didi

c# - 如何知道方法参数是否为可空类型

转载 作者:行者123 更新时间:2023-12-02 01:45:59 26 4
gpt4 key购买 nike

我有一个接收stringobject 字典的方法

private void MyFunc(Dictionary<string, object> parameters)
{
}

我有一个用例,我需要调用对象为可为 null 的 Guid 的方法

Nullable<Guid> guid = Guid.NewGuid();
Dictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("myGuid", guid);
MyFunc(parameters);

当我尝试获取对象的类型时,它似乎是 System.Guid

parameters["myGuid"].GetType()

我如何知道对象是否可为空?将对象作为方法参数发送时,我是否丢失了可为空值?

最佳答案

当您调用 parameters.Add("myGuid", guid) 时你装箱了 guid 的值.当您装箱 Nullable<T> ,结果要么是一个空引用,要么是一个装箱的 T ...不再有可空性的踪迹。换句话说,没有 Nullable<T>对象 表示。 .

所以不,你无法分辨 guid 的原始类型变量是 Nullable<Guid> .

请注意,您不需要字典来证明这一点。这显示了同样的事情:

Nullable<Guid> guid = Guid.NewGuid();
object boxed = guid;
Type type = boxed.GetType(); // System.Guid

关于c# - 如何知道方法参数是否为可空类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70890659/

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