Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 继承类的规则_C#_Inheritance - Fatal编程技术网

C# 继承类的规则

C# 继承类的规则,c#,inheritance,C#,Inheritance,我可以为继承基类的类设置规则吗。例如,Person:BaseClass,我希望Person实现isomokindofInterface,如果Person未实现接口,则不允许从BaseClass继承 我知道这在泛型基类中是可行的,您可以在其中执行以下操作 public BaseClass<T> where T : iSomeKinfOfInterface 公共基类 其中T:iSomeKinfOfInterface 您可以在基类中实现接口,并强制继承类提供实现: public

我可以为继承基类的类设置规则吗。例如,
Person:BaseClass
,我希望
Person
实现
isomokindofInterface
,如果
Person
未实现接口,则不允许从
BaseClass
继承

我知道这在泛型基类中是可行的,您可以在其中执行以下操作

public BaseClass<T>
     where T : iSomeKinfOfInterface
公共基类
其中T:iSomeKinfOfInterface

您可以在基类中实现接口,并强制继承类提供实现:

public interface ISomeInterface
{
    void DoSomething();
}

public abstract class BaseClass : ISomeInterface
{
    public abstract void DoSomething();
}

public class Person : BaseClass
{
    public override void DoSomething()
    {
        ...
    }
}
宣布你的班级为

abstract BaseClass : ISomeKinfOfInterface

不能使用抽象类。我谈论的类是winforms用户控件。当我使用抽象基类时,我不能在VisualStudio设计器中忽略用户控件…当使用泛型基类时,我在设计器中遇到的错误与此相同。当使用抽象类时,错误与此类似