我很難覆蓋可變參數函數。例子不是話值得更好,讓我們舉個例子:覆蓋可變參數函數
這裏是我的抽象類:
public abstract class MyClass<T> {
public abstract T DoSomething(params Object[] objs);
public void ShowSomething(List<T> items){
foreach(T it in items){
Console.WriteLine(string.Format("{0},{1},{2}",it.propA,it.propB,it.propC));
}
}
// Other things
}
這是我的企圖重寫它:
public class MyOverridenClass : MyClass<MyType> {
public override MyType DoSomething(int a, int b, string c){
return new MyType(){ propA = a+b, propB = a-b, propC = c+""+a};
}
}
而且從我的主:
public static void Main(string[] args){
MyOverridenClass cl = new MyOverridenClass();
List<MyType> lst = new List<MyType>();
lst.Add(cl.DoSomething(1,2,"foo"));
cl.ShowSomething();
}
我期望輸出:
3,-1,foo1
但是,當我編譯時,我有一個錯誤,說沒有找到合適的方法重寫DoSomething(int,int,string)。
這是甚至可能或我必須找到解決方法嗎?
謝謝!
非常好的解釋!謝謝 :) – Kobz