簡體   English   中英

C#如何繼承具有不同數量的必需參數的通用方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM