【发布时间】:2018-05-15 05:39:24
【问题描述】:
我希望一个变量只包含继承特定抽象的类类型。在此示例中,变量“MyLetter”应该只包含类型 LetterA、LetterB 或任何继承 LetterAbstract 的类型。
我将如何做到这一点?
abstract class LetterAbstract
{
public char Letter;
}
class LetterA : LetterAbstract
{
void LetterA()
{
Letter = 'A';
}
}
// valid
TLetterAbstract MyLetter = typeof(LetterA);
// invalid
TLetterAbstract MyLetter = typeof(string);
【问题讨论】:
-
"A"[0]和'A'不一样吗? -
你应该如何定义字符?很高兴知道。我之前只用过
"A"[0]。 -
顺便说一句,您上面的代码 sn-p not 编译。另外,您不会在任何地方定义
TLetterAbstract。 -
我想泛型是你需要的。具有约束
where T: LetterAbstract的泛型类型正是您所描述的。
标签: c# inheritance types