C#动态更改属性类型

时间:2015-11-13 14:33:41

标签: c# class types properties type-conversion

我试图在我的代码中动态更改属性类型,例如,在 Person 类下面如何将属性 name 类型从bool更改为字符串?

public class Person
{     
    public bool name;    
}

2 个答案:

答案 0 :(得分:4)

如果你想在运行时这样做,你有不同的选择。其中一些:

1)制作属性对象并在任何地方使用它检查类型:

public class Person
{     
    public object Name;    
}

2)为Person创建一个泛型类型,允许您为不同类型定义类的不同实例:

public class Person<T>
{     
    public T Name;    
}

var boolPerson = new Person<bool>();
boolPerson.Name = true;
var stringPerson = new Person<string>();
stringPerson.Name = "aString";

但是你应该解释为什么要这样做,因为可以有更好的解决方案。

答案 1 :(得分:0)

查看this(您可以创建动态对象并在运行时更改该对象)。