CS04 - Java to C# Conversion
Duration1 day (customisation)
Availability

Course Description

A course designed for Java programmers looking for a concise overview of the differences between the two languages, also concentrating on the features introduced into C#.

Pre-requisites

Programming experience with Java SE 5 or later.

Objectives

Many Java developers assume that they can code C# knowing only a few of the differences between the languages.

There are many features of C# that Java developers may well be unaware of and this course also aims to show them all the differences enabling them to be profficient in C#:

Environment

Lecture based, with live demonstrations of concepts covered.

Customisation

For on-site courses (i.e. at your premises), we are more than happy to tailor the course agenda to suit your exact requirements. In many cases, we are able to build your in-house standards and naming conventions into the delivered course.

Course Details

MINOR AND SYNTACTIC DIFFERENCES
Definitions (IL, CLR, CTS)
Assemblies vs JARs
Namespaces vs Packages
Using vs Imports
Primitive type comparison
checked, unchecked Keywords
Accessibility (scope) modifiers
Extending classes / Implementing Interfaces
Constructor Chaining
Destructors vs finalise
Properties (inc. auto-implemented) vs Getters and Setters
Comparison Of Keyword Differences (const, sealed, is, typeof, etc)
Enums
Named Arguments & Optional Parameters (C# 4)
Overriding Methods Using Virtual & Override
Differences in Boxing and Unboxing
Generics and foreach
Arrays (rentagular and jagged)
String Formatting Differences
Attributes vs Annotations
Exceptions
XML Documentation vs Javadoc
TYPES
Partial Classes
Static Classes
Nullable Types
Implicit Typing (var keyword)
Anonymous Types
Dynamic Typing (C# 4)
LANGUAGE FEATURES
Indexers
Structs
out, ref keywords
Operator Overloading & User Defined Casts
IDisposable and using
Delegates (inc. anonymous methods) & Events
Multi-Threading with delegates
Iterators and the yield Keyword
COLLECTIONS AND DICTIONARIES
Comparison of Collection and Dictionary Classes
Collection Initializers
EXTENSION METHODS, LAMBDA EXPRESSIONS AND LINQ
Extension Methods
Lambda Expressions and Expression Trees
LINQ to Objects
LINQ to SQL
LINQ to XML

Course Format

Interactive practical sessions make up a large part of the course, allowing delegates to demonstrate and reinforce the lectures given. During these sessions the delegate will gain experience of object oriented programming concepts.

Examples are used extensively, ranging from simple code snippets to full applications with complete 'real world' functionality. These are supplied at the start of the course and it is encouraged that the delegates execute and 'experiment' with these under the instructor's guidance as they are introduced.

These examples are available to take away, along with the delegate's own work.

The comprehensive Student Guide supplied is fully indexed serving as a useful reference tool long after the course has finished. Delegates will also be able to access a free help-line with technical questions relating to topics covered on the course.