程序化等同于default(Type)
在使用反射迭代类型的属性并将某些类型设置为其默认值时,您可能希望采用比基于类型的显式默认设置更简洁的方法。在这种情况下,是否存在可用于此类场景的程序化等同于default(Type)?
解决方案:
为了实现这一点,可以使用以下选项:
值类型:
Activator.CreateInstance
方法生成一个新实例,这通常会提供值类型的默认值。引用类型:
null
,因为引用类型默认为null
。示例代码:
以下代码示例说明如何以编程方式获取默认值:
public static object GetDefault(Type type) { if (type.GetTypeInfo().IsValueType) { return Activator.CreateInstance(type); } return null; }
注意:
在较新的.NET版本(例如,.NET Standard)中,type.IsValueType
写为type.GetTypeInfo().IsValueType
。
以上是如何以编程方式获取C#中任何类型的默认值?的详细内容。更多信息请关注PHP中文网其他相关文章!