inforakesha

A fine WordPress.com site

Basics of C#

Leave a comment

 

 

Image

 

  • Class System.String

Can be used as standard type string
string s = “Alfonso”;
Note
•Strings are immutable (use StringBuilder if you want to modify strings)
•Can be concatenated with +: “Don ” + s
•Can be indexed: s[i]
•String length: s.Length
•Strings are reference types => reference semantics in assignments
•but their values can be compared with ==and !=: if (s == “Alfonso”) …
•Class String defines many useful operations:
CompareTo, IndexOf, StartsWith, Substring, …

  • Structs

Declaration
struct Point {
public int x, y; // fields
public Point (int x, int y) { this.x = x; this.y = y; }// constructor
public void MoveTo (int a, int b) { x = a; y = b; }// methods
}
Use
Point p = new Point(3, 4);// constructor initializes object on the stack p.
MoveTo(10, 20);// method call

 

  • Classes

Declaration
class Rectangle
{
Point origin;public int width, height;
public Rectangle()
{
origin = new Point(0,0);
width = height = 0;
}
public Rectangle (Point p, int w, int h)
{
origin = p; width = w; height = h;
}
public void MoveTo (Point p)
{
origin = p;
}
}

  • Use

Rectangle r = new Rectangle(new Point(10, 20), 5, 5);
int area = r.width * r.height;
r.MoveTo(new Point(3, 3));

 

Classes                                                      Structs
Reference Types                                          Value Types
(objects stored on the heap)                         (objects stored on the stack)
support inheritance                                       no inheritance
(all classes are derived from object)                (but compatible with object)
can implement interfaces                               can implement interfaces
may have a destructor                                    no destructors allowed

 

 

  • Boxing and Unboxing

Value types (int, struct, enum) are also compatible with object!

Boxing
The assignment
object obj = 3;
wraps up the value 3 into a heap object

Unboxing
The assignment
int x = (int) obj;
unwraps the value again

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s