List
作为一个我不想复制代码的参数,我没有什么问题。
class A
{
public int a { get; set; }
}
class B: A
{
public int b { get; set; }
}
class C: A
{
public int c { get; set; }
}
class ModifyBC
{
public void modify(List<C> CList)
{
//some action
}
public void modify(List<B> BList)
{
//some action
}
}
我想修改一个方法而不是两个方法。这些方法完全相同,但参数(List
)不同。我不知道如何制作参数取决于对象List
。
答案 0 :(得分:2)
在这种情况下,您可以使用Generic类型并将其约束到父类。
public void Modify<T>(List<T> list) where T : A
{
//some action
}
这将允许您传入派生自类A
的任何类型。
List<B> listB = new List<B>();
List<C> listC = new List<C>();
Modify<B>(listB);
Modify<C>(listC);
这两个调用都将使用相同的方法。
答案 1 :(得分:1)
您可以使用泛型来执行以下操作:
public void SomeMethod <T>(List<T> list)
{
}
您可以这样称呼它:
SomeMethod<int>(someListObject)
SomeMethod<string>(someOtherListObject)