Contents - Cultural View

Contents - Cultural View Contents - Cultural View

culturalview.com
from culturalview.com More from this publisher
14.07.2013 Views

Comparison of Java and C Sharp 60 Object initializers No Yes Collection initializers No; can be modelled Yes Array initializers Yes Yes Methods and properties Java C# Virtual Virtual by default Non-virtual by default Abstract Yes Yes Sealing Yes Yes Explicit interface implementation No Yes Value (input) parameters Yes Yes Reference (input/output) parameters No Yes Output (output) parameters No Yes Variadic methods Yes Yes Optional arguments No Yes Named arguments No Yes Generator methods No Yes Extension methods No Yes Conditional methods No Yes Partial methods No Yes Generics Java C# Reified generics No Yes Co-variance Yes Yes Contra-variance Yes Yes Reference type constraint Yes; implicit Yes Value/primitive type constraint No Yes Constructor constraint No Yes Relation constraint Yes Yes Primitive/value type support No Yes Migration compatibility Yes No Functional programming Java C# Delegates/method references No Yes Closures/lambdas No; some use cases covered by anonymous inner classes Expression trees No Yes Query expressions No Yes Runtime (dynamic) binding Java C# Late-bound (dynamic) type No Yes Runtime type information and manipulation Yes Java C# Runtime type information Yes; but with type erasure Yes Runtime generics realization No Yes

Comparison of Java and C Sharp 61 Runtime type construction No; third party tools exist Yes Statements Java C# Loops Yes Yes Conditionals Yes Yes Flow control Yes Yes Assignment Yes Yes Exception control Yes Yes Variable declaration Yes Yes Variable type inference No Yes Deterministic disposal (ARM-blocks) No Yes Expressions and operators Java C# Arithmetic operators Yes Yes Logical operators Yes Yes Bitwise logic operators Yes Yes Conditional Yes Yes String concatenation Yes Yes Casts Yes Yes Boxing Yes; implicit Yes; implicit Unboxing Yes; implicit Yes; explicit Lifted operators No Yes Overflow control No Yes Strict floating point evaluation Yes; opt-in/out No Local classes Yes No Ad-hoc (anonymous) classes No Yes Verbatim (here-)strings No Yes Exceptions Java C# Checked exceptions Yes No Try-catch-finally Yes Yes Arrays and collections Java C# One-dimensional, zero-based index arrays Yes Yes Rectangular (multidimensional) arrays No Yes Jagged (arrays of arrays) arrays Yes Yes Non-zero based arrays No Some Unified arrays and collections No Yes Maps/dictionaries Yes Yes Sets Yes Yes Lists/vectors Yes Yes Maps Yes Yes Queues/stacks Yes Yes

Comparison of Java and C Sharp 61<br />

Runtime type construction No; third party tools exist Yes<br />

Statements Java C#<br />

Loops Yes Yes<br />

Conditionals Yes Yes<br />

Flow control Yes Yes<br />

Assignment Yes Yes<br />

Exception control Yes Yes<br />

Variable declaration Yes Yes<br />

Variable type inference No Yes<br />

Deterministic disposal (ARM-blocks) No Yes<br />

Expressions and operators Java C#<br />

Arithmetic operators Yes Yes<br />

Logical operators Yes Yes<br />

Bitwise logic operators Yes Yes<br />

Conditional Yes Yes<br />

String concatenation Yes Yes<br />

Casts Yes Yes<br />

Boxing Yes; implicit Yes; implicit<br />

Unboxing Yes; implicit Yes; explicit<br />

Lifted operators No Yes<br />

Overflow control No Yes<br />

Strict floating point evaluation Yes; opt-in/out No<br />

Local classes Yes No<br />

Ad-hoc (anonymous) classes No Yes<br />

Verbatim (here-)strings No Yes<br />

Exceptions Java C#<br />

Checked exceptions Yes No<br />

Try-catch-finally Yes Yes<br />

Arrays and collections Java C#<br />

One-dimensional, zero-based index arrays Yes Yes<br />

Rectangular (multidimensional) arrays No Yes<br />

Jagged (arrays of arrays) arrays Yes Yes<br />

Non-zero based arrays No Some<br />

Unified arrays and collections No Yes<br />

Maps/dictionaries Yes Yes<br />

Sets Yes Yes<br />

Lists/vectors Yes Yes<br />

Maps Yes Yes<br />

Queues/stacks Yes Yes

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

Saved successfully!

Ooh no, something went wrong!