14.07.2013 Views

Contents - Cultural View

Contents - Cultural View

Contents - Cultural View

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Comparison of Java and C Sharp 60<br />

Object initializers No Yes<br />

Collection initializers No; can be modelled Yes<br />

Array initializers Yes Yes<br />

Methods and properties Java C#<br />

Virtual Virtual by default Non-virtual by default<br />

Abstract Yes Yes<br />

Sealing Yes Yes<br />

Explicit interface implementation No Yes<br />

Value (input) parameters Yes Yes<br />

Reference (input/output) parameters No Yes<br />

Output (output) parameters No Yes<br />

Variadic methods Yes Yes<br />

Optional arguments No Yes<br />

Named arguments No Yes<br />

Generator methods No Yes<br />

Extension methods No Yes<br />

Conditional methods No Yes<br />

Partial methods No Yes<br />

Generics Java C#<br />

Reified generics No Yes<br />

Co-variance Yes Yes<br />

Contra-variance Yes Yes<br />

Reference type constraint Yes; implicit Yes<br />

Value/primitive type constraint No Yes<br />

Constructor constraint No Yes<br />

Relation constraint Yes Yes<br />

Primitive/value type support No Yes<br />

Migration compatibility Yes No<br />

Functional programming Java C#<br />

Delegates/method references No Yes<br />

Closures/lambdas No; some use cases covered by anonymous inner<br />

classes<br />

Expression trees No Yes<br />

Query expressions No Yes<br />

Runtime (dynamic) binding Java C#<br />

Late-bound (dynamic) type No Yes<br />

Runtime type information and<br />

manipulation<br />

Yes<br />

Java C#<br />

Runtime type information Yes; but with type erasure Yes<br />

Runtime generics realization No Yes

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!