📜  C#sealed关键字(1)

📅  最后修改于: 2023-12-03 15:14:27.473000             🧑  作者: Mango

C#中的Sealed关键字

在C#中,sealed关键字用于修饰类、方法或属性,用于限制其能被继承或重写的权限。使用sealed关键字修饰的类不能被继承,被修饰的方法不能被重写,被修饰的属性只能被同一类中的方法重写。

使用方法
Sealed class

使用sealed关键字修饰类,可以防止其他类对该类进行继承。例如:

sealed class MyClass
{
    // class implementation
}
Sealed method

使用sealed关键字修饰方法,可以防止派生类对该方法进行重写。例如:

class MyBaseClass
{
    public virtual void MyMethod()
    {
        // base class implementation
    }
}

class MyDerivedClass : MyBaseClass
{
    public sealed override void MyMethod()
    {
        // derived class implementation
    }
}

class MyDerivedDerivedClass : MyDerivedClass
{
    // Attempt to override MyMethod causes a compile error
}
Sealed property

sealed方法类似,使用sealed关键字修饰属性,可以防止派生类对该属性进行重写。例如:

class MyBaseClass
{
    public virtual int MyProperty { get; set; }
}

class MyDerivedClass : MyBaseClass
{
    public sealed override int MyProperty
    {
        get { return base.MyProperty; }
        set { base.MyProperty = value; }
    }
}

class MyDerivedDerivedClass : MyDerivedClass
{
    // Attempt to override MyProperty causes a compile error
}
总结

sealed关键字用于限制继承或重写的权限,可以帮助我们设计更加安全和可控的类。但是需要注意,在使用sealed关键字修饰方法或属性时,必须先使用virtualoverride关键字进行声明。