I've used the @Override in java and has come in quite handy. Is there anything similar in c#?
- 
                    5I dunno, the `override` keyword? – BoltClock May 17 '11 at 03:01
- 
                    2Ok, sorry, that was a really stupid question. I was looking for an annotation but couldn't find one. Forgot it was part of the method signature. Still a bit new to c#. – xecaps12 May 17 '11 at 03:06
- 
                    1C# actually had the `override` keyword first. It proved useful enough that they added the feature as an annotation to Java. – Gabe May 17 '11 at 03:11
4 Answers
The C# compiler provides compile-time checking for method overrides, including checking if the method is actually overriding as you intended.  You can indicate that a method should be overridden using the .NET override keyword.
 
    
    - 56,094
- 12
- 110
- 136
In C#, you must use the override keyword to override functions.
If you use override without a matching virtual or abstract base function, you'll get a compiler error.
If you don't use override, and there is a matching base function, you'll get a compiler warning (unless you add new).
In CSharp, override keyword meaning is totally different from the Java world. The equivalent in Csharp World is explicit implementation but it has a drawback. 
interface IShape
{
     void Display();
}
class Square : IShape
{
     void IShape.Display()
     {
     }
}
 
    
    - 621
- 1
- 8
- 25
No, yes. It makesn o sesne to have an anotation because in C# there is an override kkeyword in the langauge and the compiler warnds if you "hide" a method. So, either you say "new" or "override" directly as part of the method.
Java basically uses the annotation to hide a mistake in the langauge specifications.
Please read the language specificastions for C#. Completely.
 
    
    - 61,059
- 10
- 88
- 148
- 
                    1Why is it a mistake? There is really nothing about overriding that any modern compiler can't work out on its own. I find it mostly useful from a self-documenting perspective, and having to explicitly declare my intent makes me keep track of things. But is it necessary for compilation? Not really. – drharris May 17 '11 at 03:13
- 
                    1C# also does not have it for "the compiler" but to be explicit. Overriding without warning is a possible error condition. Java made the mistake to make everything virtual by default and auto override, and it introduces a ton of possible errors. – TomTom May 17 '11 at 07:45
- 
                    1So what? ;) Only sheep have no opinion, and they get slaughered. I personally think if you want a weak typed langauge, go and get one. Otherwise... it is a weak point. – TomTom May 17 '11 at 19:45
 
     
     
    