如何继承具有不同泛型返回类型的方法

鬼猎人吉姆

我试图继承一个返回类型为ServerType的Generic BindingList的方法。例如,假设我有以下内容:

public interface IServer 
{

    string IpAddress { get; set; }
    string Name { get; set; }
    string HostName { get; set; }
    string OsVersion { get; set; }

}

public class BaseServer : IServer
{
    private string _IpAddress;
    private string _Name;
    private string _HostName;
    private string _OsVersion;

    public string IpAddress
    {
        get { return _IpAddress; }
        set { _IpAddress = value; }
    }

    public string Name
    {
        get { return _Name; }
        set { _Name = value; }
    }

    public string HostName
    {
        get { return _HostName; }
        set { _HostName = value; }
    }

    public string OsVersion
    {
        get { return _OsVersion; }
        set { _OsVersion = value; }
    }
}

public class ServerTypeA : BaseServer { }
public class ServerTypeB : BaseServer { }
public class ServerTypeC : BaseServer { }

public class ServerTypeList : List<ServerTypeA>
{ 

    public BindingList<ServerTypeA> ToBindingList()
    {
        BindingList<ServerTypeA> myBindingList = new BindingList<ServerTypeA>();

        foreach (ServerTypeA item in this.ToList<ServerTypeA>())
        {
            _bl.Add(item);
        }

        return _bl;

    }   
}

有什么方法可以执行“ ToBindingList”方法,而不必在每个派生的服务器类中都重复该方法,并使它使用正确的泛型类型。

马丁·穆德(Martin Mulder)

首先,为所有集合创建一个基本列表:

public class MyListBase<T> : List<T>
    where T: Server
{ 
    public BindingList<T> ToBindingList()
    {
        BindingList<T> myBindingList = new BindingList<T>();
        foreach (T item in this.ToList<T>())
            myBindingList.Add(item);
        return myBindingList;
    }   
}

然后使用这个继承自:

public class Repositories : MyListBase<Repository>
{
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从具有泛型返回类型和 where 子句的方法返回值

来自分类Dev

具有泛型返回类型的vararg方法中的@SafeVarargs

来自分类Dev

具有不同类型泛型参数的方法的泛型类

来自分类Dev

具有继承的泛型

来自分类Dev

具有继承的类类型的泛型列表的类

来自分类Dev

如何创建泛型方法以返回泛型类型

来自分类Dev

如何在返回类型使用通配符从定义泛型类型有什么不同?

来自分类Dev

继承返回泛型类型的函数

来自分类Dev

Scala:具有参数或泛型类型参数的方法,该方法返回Future

来自分类Dev

Dart中具有泛型的扩展方法:无法从方法返回动态类型的值

来自分类Dev

Scala:具有参数或泛型类型参数的方法,该方法返回Future

来自分类Dev

返回泛型类型的泛型方法

来自分类Dev

具有不同retun类型的泛型委托

来自分类Dev

在 C# 中,如何使用具有两种不同类型的泛型?

来自分类Dev

具有泛型和Xcode自动完成功能的Objective-C方法返回类型

来自分类Dev

返回并使用具有匹配项的泛型类型

来自分类Dev

Kotlin - 具有泛型返回类型的抽象函数

来自分类Dev

泛型方法的不同返回类型取决于调用位置

来自分类Dev

用于返回类的不同泛型类型的实例的单个方法

来自分类Dev

如何实现工厂特征返回具有匹配类型参数的泛型值?

来自分类Dev

如何处理在Scala中返回具有泛型类型的对象的函数

来自分类Dev

具有继承的类类型的泛型列表的类-多继承

来自分类Dev

在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

来自分类Dev

具有继承的C#泛型

来自分类Dev

具有继承的嵌套泛型接口

来自分类Dev

具有继承的自引用泛型

来自分类Dev

实现从两个具有不同返回类型的接口继承的类方法

来自分类Dev

在具有不同泛型参数的抽象类中返回泛型是不好的做法

来自分类Dev

如何获得继承的泛型类型

Related 相关文章

  1. 1

    如何从具有泛型返回类型和 where 子句的方法返回值

  2. 2

    具有泛型返回类型的vararg方法中的@SafeVarargs

  3. 3

    具有不同类型泛型参数的方法的泛型类

  4. 4

    具有继承的泛型

  5. 5

    具有继承的类类型的泛型列表的类

  6. 6

    如何创建泛型方法以返回泛型类型

  7. 7

    如何在返回类型使用通配符从定义泛型类型有什么不同?

  8. 8

    继承返回泛型类型的函数

  9. 9

    Scala:具有参数或泛型类型参数的方法,该方法返回Future

  10. 10

    Dart中具有泛型的扩展方法:无法从方法返回动态类型的值

  11. 11

    Scala:具有参数或泛型类型参数的方法,该方法返回Future

  12. 12

    返回泛型类型的泛型方法

  13. 13

    具有不同retun类型的泛型委托

  14. 14

    在 C# 中,如何使用具有两种不同类型的泛型?

  15. 15

    具有泛型和Xcode自动完成功能的Objective-C方法返回类型

  16. 16

    返回并使用具有匹配项的泛型类型

  17. 17

    Kotlin - 具有泛型返回类型的抽象函数

  18. 18

    泛型方法的不同返回类型取决于调用位置

  19. 19

    用于返回类的不同泛型类型的实例的单个方法

  20. 20

    如何实现工厂特征返回具有匹配类型参数的泛型值?

  21. 21

    如何处理在Scala中返回具有泛型类型的对象的函数

  22. 22

    具有继承的类类型的泛型列表的类-多继承

  23. 23

    在TypeScript中,如何获取具有多个类型参数的方法中的泛型类型参数?

  24. 24

    具有继承的C#泛型

  25. 25

    具有继承的嵌套泛型接口

  26. 26

    具有继承的自引用泛型

  27. 27

    实现从两个具有不同返回类型的接口继承的类方法

  28. 28

    在具有不同泛型参数的抽象类中返回泛型是不好的做法

  29. 29

    如何获得继承的泛型类型

热门标签

归档