当前位置:  开发笔记 > 编程语言 > 正文

C#通用列表

如何解决《C#通用列表》经验,为你挑选了2个好方法。

我有一个映射到数据库中的字段的类.该类仅关注字段的名称及其相关的.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 对两者都不起作用.



1> xian..:
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 );
    }
}



2> Lars Mæhlum..:

像这样定义你的类:

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; }

并将列表声明为:

List list = new List();

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有