我有一個抽象類CommandBase<T, X>
,我想要一個屬性InnerCommand
。具有不同實現的泛型基類中的屬性
但是由於InnerCommand
可能具有其他類型的T和X,而不是包含它的命令,我該如何定義它?
抽象類:
public abstract class CommandBase<T, X>
where T : CommandResultBase
where X : CommandBase<T, X>
{
public CommandBase<T, X> InnerCommand { get; set; }
(...)
}
在上面InnerCommand
的例子將只接受具有相同類型T和X的情況下,但我需要允許其他類型。
的AddOrderitemCommand:
public class AddOrderitemCommand : CommandBase<AddOrderitemResult, AddOrderitemCommand>
{
(...)
}
可能包含WebserviceCommand:
public class GetMenuCommand : CommandBase<GetMenuResult,GetMenuCommand>
{
(...)
}
請在語法建議允許這一點。
3罰款;我認爲1&2使得API *開放 - 你可以分配'「一些字符串」,例如 - 加上從期望的簽名中不明顯它會怎麼樣 –
@MarcGravell:我同意。這就是爲什麼我不會使用它們。但它仍然是一種可能性,所以我想提一提。可能有一些非常有限的場景,它們可能有用。 –