1 of 28

C# Presentation

By Santosh Tawde

2 of 28

Introduction

C#, pronounced “C Sharp,” is one of the new languages in the .NET framework being implemented by Microsoft. All .NET languages compile to a common byte code (MSIL) making their integration into programs written in different languages easier.

C# Presentation, Spring 2003

3 of 28

History

  • C
  • C++
  • Developed by Anders Hejlsberg
    • Turbo Pascal
    • Delphi
    • Visual J++
  • Released in 2001-2002

C# Presentation, Spring 2003

4 of 28

Previous Problems

  • Memory Leaks
  • Illegal Pointer References
  • Overly Complex Multiple-Inheritance
  • Static Linking

C# Presentation, Spring 2003

5 of 28

Resolutions

  • Garbage Collection
  • Threw out pointers
  • Single inheritance with Interfaces
  • Dynamic Linking
  • Done 5 years ago in Java

C# Presentation, Spring 2003

6 of 28

What is C#

  • Contrary to popular belief, C# is not simply a clone of or replacement for Java
  • According to Anders Hejlsberg, Microsoft’s Chief Architect, C# is a derivation of C++, C, Java, Modula 2, and Smalltalk

C# Presentation, Spring 2003

7 of 28

What is C#

  • C# combines the best features of these languages and eradicates some of their weaknesses

C# Presentation, Spring 2003

8 of 28

Why Choose C#?

  • C# was designed from scratch with the .net framework in mind
  • C# combines the power of C and C++ with the productivity of Visual Basic
  • With its familiar syntax the transition for Java and C++ programmers will be an easy one

C# Presentation, Spring 2003

9 of 28

Why Choose C#?

C# is in sync with current web standards and is easily integrated with existing applications.

In today’s society where internet programming is inevitable having a language that already supports this makes the job of the developer easier.

C# Presentation, Spring 2003

10 of 28

Example of Code

The code looks a lot like Java

public class Example

{

public static void Main(string[] args)

{

foreach (string s in args)

{

System.Console.WriteLine(s);

}

}

}

C# Presentation, Spring 2003

11 of 28

Features

  • OOP

C# Presentation, Spring 2003

12 of 28

OOP

C# is object oriented. Every class is a subclass of an object. Everything is an object, yes even primitives. This makes generic programming easier.

Example:

int n = 3;

string s = n.ToString();

C# Presentation, Spring 2003

13 of 28

Features

  • OOP
  • Enumerators

C# Presentation, Spring 2003

14 of 28

Enumerators

Enumerators are a borrowed idea from C/C++. This is a data type consisting of a set of of named integers.

Example:

enum Weekday {Mon, Tues, Wed, Thu,

Fri, Sat, Sun};

C# Presentation, Spring 2003

15 of 28

Features

  • OOP
  • Enumerators
  • Operator Overloading

C# Presentation, Spring 2003

16 of 28

Operator Overloading

Operator Overloading is yet another idea borrowed from c++. This makes polymorphism easier with custom data types.

Example:

Currency a, b, c;

c = a + b;

C# Presentation, Spring 2003

17 of 28

Features

  • OOP
  • Enumerators
  • Operator Overloading
  • Windows API Invocation

C# Presentation, Spring 2003

18 of 28

Windows API Invocation

C# was built with Windows in mind. It was created to allow programmers to create Windows application easily through a wraparound API. Some other technologies supported are COM, COM+.

C# Presentation, Spring 2003

19 of 28

Features

  • OOP
  • Enumerators
  • Operator Overloading
  • Windows API Invocation
  • Structured Error Handling

C# Presentation, Spring 2003

20 of 28

Structured Error Handling

C# introduces new error handling techniques.

Try-catch blocks are used but with more functionality.

To throw an object, it has to be a subclass of System.Exception.

C# Presentation, Spring 2003

21 of 28

Try-Catch

C# Presentation, Spring 2003

try-catch blocks could be any of the following;

  • try{ } catch(SomeException){ }
  • try{ } catch(){ } //catches any kind of exception
  • try{ } catch(){ } finally{ } //finally is always executed
  • try{ } finally{ } //finally is always executed

22 of 28

Features

  • OOP
  • Enumerators
  • Operator Overloading
  • Windows API Invocation
  • Structured Error Handling
  • Delegates

C# Presentation, Spring 2003

23 of 28

Delegates

Delegates provide a template for a single method.

Example:

  • public delegate int ArithOp(int a, int b);
  • public int DoOp(ArithOp ar)
  • { return ar(a, b); }

C# Presentation, Spring 2003

24 of 28

Features

  • OOP
  • Enumerators
  • Operator Overloading
  • Windows API Invocation
  • Structured Error Handling
  • Delegates
  • Namespaces

C# Presentation, Spring 2003

25 of 28

Namespace

Namespace is a method of organizing similar files together. This is similar in some way to the java package idea. Every program is either explicitly within a namespace or in by default.

Example:

  • namespace Project{ public class P1{} }
  • public class P2{}

C# Presentation, Spring 2003

26 of 28

Namespace

C# Presentation, Spring 2003

To use a namespace, you just simply import by using the keyword using.

Example:

using system;

public class P1{}

27 of 28

Future of C#

With C#’s flexibility and support for many languages through the .NET architecture it will definitely become a widely used language in all aspects of programming.

C# Presentation, Spring 2003

28 of 28

Bibliography

  • C# programming, Harvey, Robinson, Templeman, Watson
  • http://www.funducode.com/csharp/basics/basics1.htm
  • http://www.simonrobinson.com/DotNET/Articles/Languages/IntroCSh.aspx
  • http://windows.oreilly.com/news/hejlsberg_0800.html
  • http://msdn.microsoft.com/msdnmag/issues/0900/csharp/default.aspx

C# Presentation, Spring 2003