我想获取字段类型的默认值。 我希望有类似以下代码的内容(当然不会编译):
public class foo
{
public int intf;
public string strf;
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(default(foo.intf)); //Expected default(int)
Console.WriteLine(default(foo.strf)); //Expected default(string)
}
}
有什么办法吗?
答案 0 :(得分:5)
首先,您需要进行反思以获取适当的字段:
var field = typeof(foo).GetField("intf");
现在您可以获取该字段的返回类型:
var type = field.FieldType
最后,您可以获取默认值类型,例如使用Programmatic equivalent of default(Type)中的这种方法:
var default = type.IsValueType ? Activator.CreateInstance(type) : null;