我有一个映射到数据库中的字段的类.该类仅关注字段的名称及其相关的.NET类型. 类型可以是string,int,datetime等.
class Foo() { string Name { get; set; } Type FooType { get; set; } }
我有另一个继承自Foo的类,它为值添加了一个属性.现在我将值存储为对象,并使用switch语句根据基类FooType对值进行装箱.
class FooWithStuff() : Foo { object Value { get; set; } }
有没有办法用泛型实现这一点,为值赋予类型安全性?
编辑:我已将关键要求变为粗体.在声明列表时说Foo需要一个类型.如果我对自定义类这样做,我会创建和接口并使用它.但是在这里我使用的是int,string,DateTime等.Int是一个结构,字符串是一个对象,所以Foo
class Foo { public string Name { get; set; } public Type Type { get; set; } } class Bar: Foo { public T Value { get; set; } public Bar() { base.Type = typeof( T ); } }
像这样定义你的类:
class Foo: IFoo { public Foo(string name) { Name = name; } string Name { get; set; } T Value {get; set;} Type FooType { get { return typeof(T); } } }
然后,您可以将接口IFoo定义为:
string Name { get; set; } Type FooType { get; set; }
并将列表声明为:
Listlist = new List ();