1

我有一个问题,对此我感到有些困惑。这可能很容易,但我只是想念它。

如果我有一个包含必要结构的类并且这些结构可以继承。我需要一个通用方法,将其传递给然后使用。例如,假设我有一个结构 Test,Test-A 继承自 Test。然后我有一个 MyTest 和 MyTest-B,它们都继承自 Test-A。

如何使用 T 创建一个方法,以便我可以同时提供 MyTest 和 MyTest-B 并且我可以在方法中使用它们中的任何一个?

所以:

public class Test
{
    public int Hello {get; set; }
}

pubilc class Test-A : Test
{  
   public string Name { get; set; }
}

public class MyTest : Test-A
{
   public string Last { get; set; } 
}

public class MYTest-B : Test-A
{
   public int Age {get; set; }
}

我需要这样的方法:

private void MyList<T>(List<T> TestList) where T : **{not sure what this would be}**
{
    TestList.Age = 10;

    **OR** 

    TestList.Name = "Jane";
}

我如何或缺少什么(或不理解)能够做到这一点?

任何帮助将不胜感激。

4

2 回答 2

4

您可以使用任何约束条件来匹配这两个条件。处理这个问题的唯一方法是使用两个重载方法,因为没有共享合约。

通用约束仅在所有类型都实现并使用相同契约(即:具有Name Age属性)的共享基类或接口时才有效。

于 2013-10-22T23:37:56.483 回答
0

如何使用 T 创建一个方法,以便我可以同时提供MyTest和 MyTest-B 并且我可以在方法中使用它们中的任何一个?

     **TestList.Age = 10;**

     ...

如果你传入一个 type 的对象,这将如何工作MyTest,因为它MyTest没有Age属性?

于 2013-10-23T00:05:19.247 回答