Features of C# Absent in Java
- C# includes more primitive types and the functionality to catch arithmetic exceptions.
- Includes a large number of notational conveniences over Java, many of which, such as operator overloading and user-defined casts, are already familiar to the large community of C++ programmers.
- Event handling is a "first class citizen"—it is part of the language itself.
- Allows the definition of "structs", which are similar to classes but may be allocated on the stack (unlike instances of classes in C# and Java).
- C# implements properties as part of the language syntax.
- C# allows
switchstatements to operate on
- C# allows anonymous methods providing closure functionality.
- C# allows iterator that employs co-routines via a functional-style
- C# has support for output parameters, aiding in the return of multiple values, a feature shared by C++ and SQL.