[英]C# how to inherit generic method with differing number of required parameters
在C#中繼承帶有通用參數的方法時,處理子類中實際上不需要參數的情況的最佳方法是什么? 例如,我想做這樣的事情:
public abstract class Parent {
protected abstract void Load<T>(T param);
}
public class Child : Parent {
protected override void Load() {}
}
如果不可能做到這一點,是否有建議的標准做法在實際不需要T的情況下指定T? 我是否只是設置為bool之類的值而忽略該值?
child.Load<bool>(false);
覆蓋函數時,必須保留相同數量(和類型)的參數。 您可以重載父方法,但不能覆蓋它:
public abstract class Parent {
protected abstract void Load<T>(T param);
}
public class Child : Parent {
protected void Load() {}
protected override void Load<T>(T param) { // do nothing? }
}
但是,這對我來說是代碼的味道-使Load<T>
抽象本質上告訴實現者,他們必須實現此方法,但是此類感覺不需要這樣做。 如果Parent
代碼期望Load<T>
被正確覆蓋; 它將如何得知Child
實現了Load
其他某種形式?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.