我在java中使用过@Override并且非常方便。 c#中有类似的内容吗?
答案 0 :(得分:12)
C#编译器为方法覆盖提供编译时检查,包括检查方法是否实际覆盖了您的意图。您可以指示应使用.NET override
关键字覆盖方法。
答案 1 :(得分:4)
在C#中,您必须使用override
关键字来覆盖函数。
如果您使用override
而没有匹配的virtual
或abstract
基函数,则会出现编译错误。
如果您不使用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#的语言规范。完全。