gpt4 book ai didi

C# 反射日期时间?

转载 作者:行者123 更新时间:2023-11-30 22:28:12 25 4
gpt4 key购买 nike

我在网上找不到任何可以帮助我解决这个问题的东西,如果有人可以帮助你,那将是救命稻草。

我的函数被赋予了属性名称和对象。它使用反射返回该属性的值。它工作得很好,但是如果我向它传递一个 Nullable DateTime,它会给我 null,无论我尝试什么,我都无法让它工作。

public static string GetPropValue(String name, Object obj)
{
Type type = obj.GetType();
System.Reflection.PropertyInfo info = type.GetProperty(name);
if (info == null) { return null; }
obj = info.GetValue(obj, null);
return obj.ToString();
}

在上面的函数中,obj 为空。我如何让它读取日期时间?

最佳答案

您的代码没问题——这会打印一天中的时间:

class Program
{
public static string GetPropValue(String name, Object obj)
{
Type type = obj.GetType();
System.Reflection.PropertyInfo info = type.GetProperty(name);
if (info == null) { return null; }
obj = info.GetValue(obj, null);
return obj.ToString();
}

static void Main(string[] args)
{
var dt = GetPropValue("DtProp", new { DtProp = (DateTime?) DateTime.Now});
Console.WriteLine(dt);
}
}

为避免空值异常,将 GetPropValue 的最后一行更改为:

return obj == null ? "(null)" : obj.ToString();

关于C# 反射日期时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10902731/

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