C#
and Java are both new-generation languages descended from a line
including C and C++. Each includes advanced features, like garbage
collection, which remove some of the low level maintenance tasks from
the programmer. In a lot of areas they are syntactically similar.
Both
C# and Java compile initially to an intermediate language: C# to
Microsoft Intermediate Language (MSIL), and Java to Java bytecode. In
each case the intermediate language can be run - by interpretation or
just-in-time compilation on an appropriate 'virtual machine'. In C#,
however, more support is given for the further compilation of the
intermediate language code into native code.
C#
contains more primitive data types than Java, and also allows more
extension to the value types. For example, C# supports 'enumerations',
type-safe value types which are limited to a defined set of constant
variables, and 'structs', which are user-defined value types.
Unlike Java, C# has the useful feature that we can overload various operators.
Like
Java, C# gives up on multiple class inheritance in favour of a single
inheritance model extended by the multiple inheritances of interfaces.
However, polymorphism is handled in a more complicated fashion; with
derived class methods either 'overriding' or 'hiding' super class
methods
C# also uses 'delegates'-type-safe method pointers. These are used to implement event handling.
In
Java, multi-dimensional arrays are implemented solely with
single-dimensional arrays (Where arrays can be members of other arrays).
In addition to jagged arrays, however, C# also implements genuine
rectangular arrays.
0 comments:
Post a Comment