当前位置:编程学习 > C#/ASP.NET >>

C#中怎样override泛型方法

基类中的方法
public abstract List<T> ReadFileToList<T>(string FileName, string tableName);
怎样override这个方法??
是不是这样:public override List<string> ReadFileToList(string FileName, string tableName);
--------------------编程问答--------------------  public override List<T> ReadFileToList<T>(string FileName, string tableName)
       --------------------编程问答-------------------- 提示:无法将类型“System.Collections.Generic.List<string>”隐式转换为“System.Collections.Generic.List<T>” --------------------编程问答--------------------  abstract class A<T> where T : class
    {//你是这样写的吧?
        public abstract List<T> ReadFileToList(string FileName, string tableName);
    }
    class B : A<string>
    {
        public override List<string> ReadFileToList(string FileName, string tableName)
        {
            return null;
        }
    } --------------------编程问答--------------------
引用 3 楼 hjywyj 的回复:
abstract class A<T> where T : class
    {//你是这样写的吧?
        public abstract List<T> ReadFileToList(string FileName, string tableName);
    }
    class B : A<string>
    {
        p……
谢谢你的回答,但因为业务原因,T只能写在方法上,不能写在类上 --------------------编程问答-------------------- 将部分代码贴上来 --------------------编程问答--------------------
引用 5 楼 hjywyj 的回复:
将部分代码贴上来
我简单介绍一下业务逻辑,抽象基类中ReadFileToList方法需要返回一个List,但这个List的类型不确定,需要子类确定。多谢了 --------------------编程问答--------------------  abstract class A
        {
            public abstract List<T> ReadFileToList<T>(string FileName, string tableName) where T : class;
        }
        class B : A
        {
            public override List<T> ReadFileToList<T>(string FileName, string tableName)
            {
                //……
                return null;
            }
        }
        static void Main(string[] args)
        {
            B b = new B();
            b.ReadFileToList<string>("", "");
            Console.ReadLine();
        }
这样吗? --------------------编程问答--------------------
引用 7 楼 hjywyj 的回复:
abstract class A
        {
            public abstract List<T> ReadFileToList<T>(string FileName, string tableName) where T : class;
        }
        class B : A
        {
       ……
应该是这样,我觉得我的整个设计思路好像有问题。。这样的话调用ReadFileToList()方法时还是需要指明T的类型,不够灵活 --------------------编程问答--------------------
引用 7 楼 hjywyj 的回复:
abstract class A
        {
            public abstract List<T> ReadFileToList<T>(string FileName, string tableName) where T : class;
        }
        class B : A
        {
       ……
请问这位兄台有没有什么好的思路
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,