T B H P N

Getting Started with C#

"Start where you are, use what you have, do what you can."
- Arthur Ashe

This page provides resources for students needing a quick introduction or refresher for the C# programming language. It should also be useful for anyone needing to prepare for interviews for software development positions.

Getting Started

C# is a managed language that is similar to Java, runs in a virtual machine, referred to as the Common Language Runtime (CLR), with garbage collection, exception handling, and reflection. It has a wealth of library resources that provide simple access to almost the entire Windows API.

You will find C# to be a relatively simple language with a few inconsistances like delgates and Language Integrated Query (LINQ). These are powerful and useful facilities but make the language a bit harder to learn.

To be effective you need to learn the peculiarities of its reference-based object model. In general you can't expect to make copies of objects and need to be aware of side-effects due to the use of references to objects residing in the managed heap. For example, the assignment operator assigns a reference, not the state of its referenced object.
C# Link Description
Basic Syntax C# Programming Guide - MSDN This tutoria presents basic language syntax for C# types, classes, class relationships, and Generics
Course Summary CourseSynopsis.htm A quick walk-through of topics covered in CSE681 - Software Modeling & Analysis.
classes classes.htm
CodeSnap-ClassDemo
Illustrates the syntax for classes, use of properties, and semantics of reference types.
class relationships Class Relationships
Class and Object layout
Illustrates the four class relationships: inheritance, composition, aggregation, and using.
Inheritance Inheritance.htm
CodeSnap-Inheritance
Illustrates basic ideas with a simple example.
Generics Generics.htm
CodeSnap-Generics
First link is very basic example.
Second illustrates useful generic classes for Directed Graphs.
.Net Containers CodeSnap-List
.Net containers with examples
Code snap starts with lists, but also links to code for Dictionaries, Queues, and Stacks.
The second link takes you to code examples for most of the .Net containers.
.Net FileSystem Directory Navigator .Net has a very well engineered set of classes for working with the Windows FileSystem in the System.IO namespace. The Navigator uses Directory and Path classes to traverse a directory tree looking for file patterns.

You should find these resources useful as you learn the language and its infrastructure. Beginners may wish to focus on the tutorials, first few code examples, and blog entries.
Tutorials and References:

IDEs:

Videos - MSDN Channel 9:

References:
Sample Code:

CSE681 - Software Modeling and Analysis:
Quad View