C#未知泛型类型

sun_3211 2014-06-17 08:04:26
class Test
{
interface A<T>
{
string getString();
}
class B : A<string>
{

public string getString()
{
return "B";
}
}
class C : A<int>
{

public string getString()
{
return "C";
}
}
public void add()
{
List<A<object>> date = new List<A<object>>();
date.Add(new B());
date.Add(new C());
}
}


这段代码是报错的,我这里有个集合里面存的某个类,这个类是别人定义的我需要定义一个集合存起来方便以后调用,但是我又要用到这里面的通用方法,请问有方法解决吗?
...全文
274 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
tinydyw 2014-06-24
  • 打赏
  • 举报
回复
你需要定义的是一个集合类型...所以直接继承集合接口就行了.....
jiaoao_2460950972 2014-06-24
  • 打赏
  • 举报
回复
使用泛型存储不同类型数据列表 class Types<T> { public T Num; //声明编号字段 public T Name; //声明姓名字段 public T Sex; //声明性别字段 public T Age; //声明年龄字段 public T Birthday; //声明生日字段 public T Salary; //声明薪水字段 } private void button1_Click(object sender, EventArgs e) { Types<object> Exte = new Types<object>();//实例化泛型类对象 //为泛型类中声明的字段进行赋值,存储不同类型的值 Exte.Num = 1; Exte.Name = "王老师"; Exte.Sex = "男"; Exte.Age = 25; Exte.Birthday = Convert.ToDateTime("1986-06-08"); Exte.Salary = 1500.45F;//CodeGo.net/ //将泛型类中各字段的值显示在文本框中 textBox1.Text = Exte.Num.ToString(); textBox2.Text = Exte.Name.ToString(); textBox3.Text = Exte.Sex.ToString(); textBox4.Text = Exte.Age.ToString(); textBox5.Text = Exte.Birthday.ToString(); textBox6.Text = Exte.Salary.ToString(); }
言多必失 2014-06-17
  • 打赏
  • 举报
回复
我正在写代码 结果被一楼的回答了。

 class Test
    {
        interface D
        {
            string getString();
        }
        interface A<T> : D
        {
            // string getString();
        }
        public class B : A<string>
        {
            public string getString() { return "B"; }
        }
        public class C : A<int>
        {
            public string getString() { return "C"; }
        }
        public static void add()
        {
            IList<D> date = new List<D>();
            //A<object> A1 = new B() as A<object>;
            //date.Add(A1);

            date.Add(new B());
            date.Add(new C());

            foreach (var item in date)
            {
                Console.WriteLine(item.getString());
            }
            Console.ReadLine();
        }
    }
iyomumx 2014-06-17
  • 打赏
  • 举报
回复
这个类库设计上有问题 既然string getString();不需要用到类型参数T,那么这个函数就不应该定义在泛型接口内, 应当定义一个更通用的接口,然后泛型接口继承该接口,比如:
interface A
{
	string getString();
}
interface A<T> : A
{
	T SomeOtherMethod();
}

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧