我有一个问题,我对这个问题感到有点困惑。这可能很容易,但我只是错过了它。
如果我有一个包含必要结构的类,那么结构可以继承。我需要一个通用的方法,传递给然后使用。例如,假设我有一个结构Test,Test-A继承自Test。然后我有一个继承自Test-A的MyTest和MyTest-B。
如何使用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";
}
我是如何或缺少什么(或不理解)能够做到这一点?
非常感谢任何帮助。
答案 0 :(得分:4)
没有可以使用的限制,这些限制将匹配这两个条件。处理这个问题的唯一方法是使用两个重载方法,因为没有共享契约。
通用约束仅在共享所有类型实现的基类或接口时才有效,并且使用相同的契约(即:两者都具有Name
和 Age
属性)。
答案 1 :(得分:0)
如何使用T创建方法,以便我可以同时提供 MyTest 和 MyTest-B和我可以在方法中使用它们中的任何一个吗?
**TestList.Age = 10;**
...
如果传入MyTest
类型的对象,假设MyTest
没有Age
属性,那么这将如何工作?