我在Java中使用过@Override,非常方便。C#中是否有类似的东西?
C#编译器提供了方法覆盖的编译时检查,包括检查方法是否按照您的意图实际进行了覆盖。您可以使用.NET中的override
关键字指示应该被覆盖的方法。
在C#中,要重写函数必须使用override
关键字。
如果你使用override
却没有匹配的virtual
或abstract
基函数,你会得到一个编译器错误。
如果你不使用override
,但有一个匹配的基函数,你会得到一个编译器警告(除非你添加new
)。
override
关键字的含义与Java世界完全不同。在C#世界中,它的等价物是显式实现,但它有一个缺点。interface IShape
{
void Display();
}
class Square : IShape
{
void IShape.Display()
{
}
}
不需要,是的。在C#中有一个override关键字和编译器会警告你“隐藏”一个方法,所以没有必要使用注释。因此,你可以直接在方法中使用“new”或“override”。
Java基本上使用注释来隐藏语言规范中的错误。
请完全阅读C#的语言规范。
override
关键字吗? - BoltClockoverride
关键字的。它被证明非常有用,以至于 Java 将其作为注释添加了该特性。 - Gabe