c#中有什么类似于java的@override注释吗?

时间:2011-05-17 02:59:06

标签: c# java override

我在java中使用过@Override并且非常方便。 c#中有类似的内容吗?

4 个答案:

答案 0 :(得分:12)

C#编译器为方法覆盖提供编译时检查,包括检查方法是否实际覆盖了您的意图。您可以指示应使用.NET override关键字覆盖方法。

答案 1 :(得分:4)

在C#中,您必须使用override关键字来覆盖函数。

如果您使用override而没有匹配的virtualabstract基函数,则会出现编译错误。

如果您不使用override,并且有匹配的基本功能,您将收到编译器警告(除非您添加new)。

答案 2 :(得分:0)

在CSharp中,override关键字的含义与Java世界完全不同。 Csharp World中的等效项是显式实现,但是具有drawback

interface IShape
{
     void Display();
}

class Square : IShape
{
     void IShape.Display()
     {

     }
}

答案 3 :(得分:-3)

不,是的。因为在C#中,语言中有一个覆盖kkeyword,如果你“隐藏”一个方法,编译器就会发出警告。所以,要么直接说“新”或“覆盖”作为方法的一部分。

Java基本上使用注释来隐藏语言规范中的错误。

请阅读C#的语言规范。完全。