gpt4 book ai didi

c# - 为什么这个 C# 类声明可以编译?

转载 作者:太空狗 更新时间:2023-10-29 18:05:07 24 4
gpt4 key购买 nike

这个问题真的有点无意义,但我只是好奇:

这个:

public sealed class MyClass
{
protected void MyMethod(){}
}

编译,但给出警告

虽然这个:

public sealed class MyClass
{
public virtual void MyMethod(){}
}

不编译。出于纯粹的好奇,这有什么原因吗?

最佳答案

virtual用于声明“可覆盖”的方法/属性。

sealed用于声明该类不能被继承。

因此密封类中的虚拟方法永远不会被覆盖,因为该类永远不会被继承。它只是没有意义。

protected影响对成员的访问,它不会像 virtual 那样声明它是“可覆盖的”(尽管它经常以这种方式使用),因此并不矛盾。

关于c# - 为什么这个 C# 类声明可以编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1156988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com