c# is like obj-c except for windows abstract as base bool break byt case catch char checked class cons continue decimal default delegate do double...... easyyyy: using System; class Test { static void Main ( ) { int x = 3; int y = x; // assign x to y, y is now a copy of x x++; // increment x to 4 Console.WriteLine (y); // prints 3 } } StringBuilder y = x; When we assign x to y, we are saying "make y point to the same thing that x points to." A reference stores the address of an object. (An address is a memory location, stored as a 4-byte number.) We're actually still making a copy of x, but we're copying this 4-byte number as opposed to the StringBuilder object itself. both c# and obj-c have 'garbage collectors' has decimal data type two types of arrays- rectangular and jagged (array of arrays) awesome for (;;) Console.WriteLine("Hell ain't so bad"); namespaces accessed like directories: "namespace MyCompany { namespace MyProduct { namespace Drawing { class Point {int x, y, z;} delegate void PointInvoker(Point p); } } }" overloading methods: void Foo(int x); void Foo(double x); void Foo(int x, float y); void Foo(float x, int y); void Foo(ref int x); methodInvoker psych ; you can declare a functino 'unsafe' and use c++ style pointers and address references.. cooool:" #define DEBUG--------------------------- using System; class MyClass { static int x = 5; static void Main( ) { # if DEBUG---------------------------- Console.WriteLine("Testing: x = {0}", x); # endif } }" reason to switch to windows: System.Drawing System.Drawing.Design System.Drawing.Drawing2D System.Drawing.Imaging System.Drawing.Printing System.Drawing.Text