我有一个抽象类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:我同意。这就是为什么我不会使用它们。但它仍然是一种可能性,所以我想提一提。可能有一些非常有限的场景,它们可能有用。 –