Csharp/C Sharp/Class Interface/Class Definition

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

A program that uses the Building class

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// A program that uses the Building class.

using System;

class Building {

 public int floors;    // number of floors 
 public int area;      // total square footage of building 
 public int occupants; // number of occupants 

}

// This class declares an object of type Building. public class BuildingDemo {

 public static void Main() {   
   Building house = new Building(); // create a Building object 
   int areaPP; // area per person 
  
   // assign values to fields in house 
   house.occupants = 4;  
   house.area = 2500;  
   house.floors = 2;  
  
   // compute the area per person 
   areaPP = house.area / house.occupants;  
  
   Console.WriteLine("house has:\n  " + 
                     house.floors + " floors\n  " + 
                     house.occupants + " occupants\n  " + 
                     house.area + " total area\n  " + 
                     areaPP + " area per person"); 
 }   

}

      </source>


A Simple C# Class

<source lang="csharp"> using System; public class ASimpleClass {

   public static void Main()
   {
       Point myPoint = new Point(10, 15);
       Console.WriteLine("myPoint.x {0}", myPoint.x);
       Console.WriteLine("myPoint.y {0}", myPoint.y);
   }

} class Point {

   // constructor
   public Point(int x, int y)
   {
       this.x = x;
       this.y = y;
   }
   
   // member fields
   public int x;
   public int y;

}


      </source>


A simple inventory example

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// A simple inventory example.

using System; using System.Collections;

class Inventory {

 string name; 
 double cost; 
 int onhand; 

 public Inventory(string n, double c, int h) { 
   name = n; 
   cost = c; 
   onhand = h; 
 } 

 public override string ToString() { 
   return 
     String.Format("{0,-10}Cost: {1,6:C}  On hand: {2}", 
                   name, cost, onhand); 
 } 

}

public class InventoryList {

 public static void Main() { 
   ArrayList inv = new ArrayList(); 
    
   // Add elements to the list 
   inv.Add(new Inventory("Pliers", 5.95, 3)); 
   inv.Add(new Inventory("Wrenches", 8.29, 2));    
   inv.Add(new Inventory("Hammers", 3.50, 4)); 
   inv.Add(new Inventory("Drills", 19.88, 8)); 

   Console.WriteLine("Inventory list:"); 
   foreach(Inventory i in inv) { 
     Console.WriteLine("   " + i); 
   } 
 } 

}


      </source>


Assign value to class

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// This program will not compile.

class X {

 int a; 

 public X(int i) { a = i; } 

}

class Y {

 int a; 

 public Y(int i) { a = i; } 

}

public class IncompatibleRef {

 public static void Main() { 
   X x = new X(10); 
   X x2;  
   Y y = new Y(5); 

   x2 = x; // OK, both of same type 

   x2 = y; // Error, not of same type 
 } 

}


      </source>


Create class

<source lang="csharp"> /* Learning C# by Jesse Liberty Publisher: O"Reilly ISBN: 0596003765

  • /
using System;
public class MyTime
{
    // private variables
    private int year;
    private int month;
    private int date;
    private int hour;
    private int minute;
    private int second;
    // public methods
    public void DisplayCurrentMyTime()
    {
        Console.WriteLine(
            "stub for DisplayCurrentMyTime");
    }
}
public class Tester
{
    static void Main()
    {
        MyTime timeObject = new MyTime();
        timeObject.DisplayCurrentMyTime();
    }
}
          
      </source>


Declare class and use it

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

using System;

class Rect {

 public int width; 
 public int height; 

 public Rect(int w, int h) { 
   width = w; 
   height = h; 
 } 

 public int area() { 
   return width * height; 
 } 

}

public class UseRect {

 public static void Main() {   
   Rect r1 = new Rect(4, 5); 
   Rect r2 = new Rect(7, 9); 

   Console.WriteLine("Area of r1: " + r1.area()); 

   Console.WriteLine("Area of r2: " + r2.area()); 

 } 

}


      </source>


Declaring and Defining Classes

<source lang="csharp"> /*

* C# Programmers Pocket Consultant
* Author: Gregory S. MacBeth
* Email: gmacbeth@comporium.net
* Create Date: June 27, 2003
* Last Modified Date:
*/

using System; namespace Client.Chapter_5___Building_Your_Own_Classes {

 public class DeclaringandDefiningClasses
 {
   static private int MyInt = 5;
   static public int MyInt2 = 10;
   static public int[] MyIntArray;
   static private int ObjectCount = 0;
   static void Main(string[] args)
   {
     MyIntArray = new int[10];
     ObjectCount++;
   }
   public static int MyMethod(int myInt)
   {
     MyInt = MyInt + myInt;
     return MyInt;
   }
   private static long MyLongMethod(ref int myInt)
   {
     return myInt;
   }
 }

}

      </source>


Declaring Class Instances

<source lang="csharp"> /*

* C# Programmers Pocket Consultant
* Author: Gregory S. MacBeth
* Email: gmacbeth@comporium.net
* Create Date: June 27, 2003
* Last Modified Date:
*/

using System; namespace Client.Chapter_5___Building_Your_Own_Classes {

 public class DeclaringClassInstances
 {
   static void Main(string[] args)
   {
     ClassInstantied MyClass = new ClassInstantied();
   }
 }
 class ClassInstantied
 {
   public void Display()
   {
     Console.WriteLine("Hello World");
   }
 }

}

      </source>


Demonstrate the use of a nested class to contain data

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

// // Nested.cs -- demonstrate the use of a nested class to contain data // // Compile this program with the following command line // C:>csc Nested.cs // namespace nsReadOnly {

   using System;
   
   public class Nested
   {
       static double DegreeFactor = 1;
       static double MilFactor = 0.05625;
       static double RadianFactor = 57.29578;
       static public void Main ()
       {
           double angle = 90;
           double radius = 50;
           
           // Declare an instance of the nested class
           clsArea.clsData data = new clsArea.clsData (angle, radius,
                                                       DegreeFactor);
           clsArea InDegrees = new clsArea (data);
           // Change the values to mils
           data.Factor = MilFactor;
           data.Angle = angle * 17.77778;
           clsArea InMils = new clsArea (data);
           // Change the values to radians
           data.Angle = angle / 57.29578;
           data.Factor = RadianFactor;
           clsArea InRadians = new clsArea (data);
           Console.WriteLine ("Area of pie of {0,0:F3} degrees is {1,0:F1}",
                              InDegrees.Data.Angle, InDegrees.Area);
           Console.WriteLine ("Area of pie of {0,0:F3} radians is {1,0:F1}",
                              InRadians.Data.Angle, InRadians.Area);
           Console.WriteLine ("Area of pie of {0,0:F3} mils is {1,0:F1}",
                              InMils.Data.Angle, InMils.Area);
       }
   }
   class clsArea
   {
       public class clsData : ICloneable
       {
           public clsData (double angle, double radius, double factor)
           {
               m_Angle = angle;
               m_Radius = radius;
               m_Factor = factor / 57.29578;
           }
           public double Angle
           {
               get {return(m_Angle);}
               set {m_Angle = value;}
           }
           public double Radius
           {
               get {return(m_Radius);}
               set {m_Radius = value;}
           }
           public double Factor
           {
               get {return(m_Factor);}
               set {m_Factor = value / 57.29578;}
           }
           private double m_Angle = 0;
           private double m_Radius = 0;
           private double m_Factor = 1;
           public object Clone ()
           {
               clsData clone = new clsData (m_Angle, m_Radius,
                                            m_Factor * 57.29578);
               return (clone);
           }
       }
       public clsArea (clsData data)
       {
           // Clone the data object to get a copy for ourselves
           m_Data = (clsData) data.Clone();
       }
       public clsData Data
       {
           get {return (m_Data);}
       }
       private clsData m_Data;
       private const double pi = 3.14159;
       private const double radian = 57.29578;
       public double Area
       {
           get
           {
              return (m_Data.Radius * m_Data.Radius * pi
                      * m_Data.Angle * m_Data.Factor /  (2 * pi));
           }
       }
   }

}


      </source>


Illustrates hiding

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example5_4.cs illustrates hiding
  • /

// declare the Car class class Car {

 public int yearBuilt;
 public double maximumSpeed;
 public int Age(int currentYear)
 {
   int maximumSpeed = 100;  // hides the field
   System.Console.WriteLine("In Age(): maximumSpeed = " +
     maximumSpeed);
   int age = currentYear - yearBuilt;
   return age;
 }
 public double Distance(double initialSpeed, double time)
 {
   System.Console.WriteLine("In Distance(): maximumSpeed = " +
     maximumSpeed);
   return (initialSpeed + maximumSpeed) / 2 * time;
 }

}

public class Example5_4 {

 public static void Main()
 {
   // create a Car object
   Car redPorsche = new Car();
   redPorsche.yearBuilt = 2000;
   redPorsche.maximumSpeed = 150;
   int age = redPorsche.Age(2001);
   System.Console.WriteLine("redPorsche is " + age + " year old.");
   System.Console.WriteLine("redPorsche travels " +
     redPorsche.Distance(31, .25) + " miles.");
 }

}


      </source>


Illustrates how to assign default values to fields using initializers

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example5_2.cs illustrates how to assign default values 
 to fields using initializers
  • /

// declare the Car class class Car {

 // declare the fields
 public string make = "Ford";
 public string model = "T";
 public string color;  // default value of null
 public int yearBuilt = 1910;
 // define the methods
 public void Start()
 {
   System.Console.WriteLine(model + " started");
 }
 public void Stop()
 {
   System.Console.WriteLine(model + " stopped");
 }

}

public class Example5_2 {

 public static void Main()
 {
   // create a Car object
   Car myCar = new Car();
   // display the default values for the Car object fields
   System.Console.WriteLine("myCar.make = " + myCar.make);
   System.Console.WriteLine("myCar.model = " + myCar.model);
   if (myCar.color == null)
   {
     System.Console.WriteLine("myCar.color is null");
   }
   System.Console.WriteLine("myCar.yearBuilt = " + myCar.yearBuilt);
 }

}


      </source>


Illustrates how to declare classes, object references, and create objects

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example5_1.cs illustrates how to declare
 classes, object references, and create objects
  • /

// declare the Car class class Car {

 // declare the fields
 public string make;
 public string model;
 public string color;
 public int yearBuilt;
 // define the methods
 public void Start()
 {
   System.Console.WriteLine(model + " started");
 }
 public void Stop()
 {
   System.Console.WriteLine(model + " stopped");
 }

}

public class Example5_1 {

 public static void Main()
 {
   // declare a Car object reference named myCar
   Car myCar;
   // create a Car object, and assign its address to myCar
   System.Console.WriteLine("Creating a Car object and assigning " +
     "its memory location to myCar");
   myCar = new Car();
   // assign values to the Car object"s fields using myCar
   myCar.make = "Toyota";
   myCar.model = "MR2";
   myCar.color = "black";
   myCar.yearBuilt = 1995;
   // display the field values using myCar
   System.Console.WriteLine("myCar details:");
   System.Console.WriteLine("myCar.make = " + myCar.make);
   System.Console.WriteLine("myCar.model = " + myCar.model);
   System.Console.WriteLine("myCar.color = " + myCar.color);
   System.Console.WriteLine("myCar.yearBuilt = " + myCar.yearBuilt);
   // call the methods using myCar
   myCar.Start();
   myCar.Stop();
   // declare another Car object reference and
   // create another Car object
   System.Console.WriteLine("Creating another Car object and " +
     "assigning its memory location to redPorsche");
   Car redPorsche = new Car();
   redPorsche.make = "Porsche";
   redPorsche.model = "Boxster";
   redPorsche.color = "red";
   redPorsche.yearBuilt = 2000;
   System.Console.WriteLine("redPorsche is a " + redPorsche.model);
   // change the object referenced by the myCar object reference
   // to the object referenced by redPorshe
   System.Console.WriteLine("Assigning redPorsche to myCar");
   myCar = redPorsche;
   System.Console.WriteLine("myCar details:");
   System.Console.WriteLine("myCar.make = " + myCar.make);
   System.Console.WriteLine("myCar.model = " + myCar.model);
   System.Console.WriteLine("myCar.color = " + myCar.color);
   System.Console.WriteLine("myCar.yearBuilt = " + myCar.yearBuilt);
   // assign null to myCar (myCar will no longer reference an object)
   myCar = null;
 }

}

      </source>


illustrates how to use a "has a" relationship

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example6_5.cs illustrates how to use a "has a"
 relationship
  • /

// declare the Engine class class Engine {

 // declare the fields
 public int cylinders;
 public int horsepower;
 // define the method
 public void Start()
 {
   System.Console.WriteLine("Engine started");
 }

}

// declare the Car class class Car {

 // declare the fields
 public string make;
 public Engine engine;  // Car has an Engine
 // define the method
 public void Start()
 {
   engine.Start();
 }

}

public class Example6_5 {

 public static void Main()
 {
   // declare a Car object reference named myCar
   System.Console.WriteLine("Creating a Car object");
   Car myCar = new Car();
   myCar.make = "Toyota";
   // Car objects have an Engine object
   System.Console.WriteLine("Creating an Engine object");
   myCar.engine = new Engine();
   myCar.engine.cylinders = 4;
   myCar.engine.horsepower = 180;
   // display the values for the Car and Engine object fields
   System.Console.WriteLine("myCar.make = " + myCar.make);
   System.Console.WriteLine("myCar.engine.cylinders = " +
     myCar.engine.cylinders);
   System.Console.WriteLine("myCar.engine.horsepower = " +
     myCar.engine.horsepower);
   // call the Car object"s Start() method
   myCar.Start();
 }

}


      </source>


Illustrates nested classes

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example6_6.cs illustrates nested classes
  • /

// declare the Car class class Car {

 // declare the Engine class
 public class Engine
 {
   // declare the Engine fields
   public int cylinders;
   public int horsepower;
   // define the Engine method
   public void Start()
   {
     System.Console.WriteLine("Engine started");
   }
 }
 // declare the Car fields
 public string make;
 public Engine engine;  // Car has an Engine
 // define the Car method
 public void Start()
 {
   engine.Start();
 }

}

public class Example6_6 {

 public static void Main()
 {
   // declare a Car object reference named myCar
   System.Console.WriteLine("Creating a Car object");
   Car myCar = new Car();
   myCar.make = "Toyota";
   // Car objects have an Engine object
   System.Console.WriteLine("Creating an Engine object");
   myCar.engine = new Car.Engine();
   myCar.engine.cylinders = 4;
   myCar.engine.horsepower = 180;
   // display the values for the Car and Engine object fields
   System.Console.WriteLine("myCar.make = " + myCar.make);
   System.Console.WriteLine("myCar.engine.cylinders = " +
     myCar.engine.cylinders);
   System.Console.WriteLine("myCar.engine.horsepower = " +
     myCar.engine.horsepower);
   // call the Car object"s Start() method
   myCar.Start();
 }

}


      </source>


Multiple constructors in a class definition

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

// Constrct.cs - Demonstrates the use of multiple constructors // in a class definition. // // Compile this program with the following command line: // C:>csc Constrct.cs // namespace nsConstructor {

   using System;
   struct POINT
   {
       public POINT (int cx, int cy)
       {
           this.cx = cx;
           this.cy = cy;
       }
       public int cx;
       public int cy;
   }
   public class Constrct
   {
       static public void Main ()
       {
           clsRect rc1 = new clsRect();
           clsRect rc2 = new clsRect (10, 12, 84, 96);
           POINT pt1 = new POINT (10, 12);
           POINT pt2 = new POINT (84, 96);
           clsRect rc3 = new clsRect (pt1, pt2);
       }
   }
   class clsRect
   {

// The following constructor replaces the default constructor

       public clsRect ()
       {
           Console.WriteLine ("Default constructor called");
           m_Left = m_Top = m_Right = m_Bottom  = 0;
       }
       public clsRect (int cx1, int cy1, int cx2, int cy2)
       {
           Console.WriteLine ("Constructor 1 called");
           m_Left = cx1;
           m_Top = cy1;
           m_Right = cx2;
           m_Bottom = cy2;
       }
       public clsRect (POINT pt1, POINT pt2)
       {
           Console.WriteLine ("Constructor 2 called");
           m_Left = pt1.cx;
           m_Top = pt1.cy;
           m_Right = pt2.cx;
           m_Bottom = pt2.cy;
       }
       public POINT UpperLeft
       {
           get {return(new POINT(m_Left, m_Top));}
           set {m_Left = value.cx; m_Top = value.cy;}
       }
       public POINT LowerRight
       {
           get {return(new POINT(m_Right, m_Bottom));}
           set {m_Right = value.cx; m_Bottom = value.cy;}
       }
       private int m_Left;
       private int m_Top;
       private int m_Right;
       private int m_Bottom;
   }

}


      </source>


Return an object

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Return an object.

using System;

class Rect {

 int width; 
 int height; 

 public Rect(int w, int h) { 
   width = w; 
   height = h; 
 } 

 public int area() { 
   return width * height; 
 } 

 public void show() { 
   Console.WriteLine(width + " " + height); 
 } 

 /* Return a rectangle that is a specified 
    factor larger than the invoking rectangle. */ 
 public Rect enlarge(int factor) { 
   return new Rect(width * factor, height * factor); 
 } 

}

public class RetObj {

 public static void Main() {   
   Rect r1 = new Rect(4, 5); 

   Console.Write("Dimensions of r1: "); 
   r1.show(); 
   Console.WriteLine("Area of r1: " + r1.area()); 

   Console.WriteLine(); 

   // create a rectange that is twice as big as r1 
   Rect r2 = r1.enlarge(2); 

   Console.Write("Dimensions of r2: "); 
   r2.show(); 
   Console.WriteLine("Area of r2 " + r2.area()); 
 } 

}


      </source>


Show name hiding in a derived class

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

// // Hide.cs -- Show name hiding in a derived class // // Compile this program with the following command line: // C:>csc Hide.cs // namespace nsHide {

   using System;
   using System.Reflection;
   
   public class Hide
   {
       static public void Main ()
       {
           clsBase Base = new clsBase();
           clsDerived Derived = new clsDerived ();
           Base.x = 42;
           Derived.x = 42;
           Console.WriteLine ("For the base class:");
           Console.WriteLine ("\tThe type stored in clsBase is " + Base.TypeOf());
           Console.WriteLine ("\tMathOp () returns {0,0:F3} for {1}", Base.MathOp(42), 42);
           Console.WriteLine ("\r\nFor the derived class:");
           Console.WriteLine ("\tThe type stored in clsDerived is " + Derived.TypeOf());
           Console.WriteLine ("\tMathOp () returns {0,0:F3} for {1}", Derived.MathOp(42), 42);
       }
   }
   class clsBase
   {
       protected int m_x;
       public int x
       {
          get {return (x);}
          set {m_x = value;}
       }
       public double MathOp (int val)
       {
           return (Math.Sqrt ((double) val));
       }
       public string TypeOf ()
       {
           return ("integer");
       }
   }
   class clsDerived : clsBase
   {
       new protected double m_x;
       new public double x
       {
          get {return (x);}
          set {m_x = value;}
       }
       new public double MathOp (int val)
       {
           return ((double) (val * val));
       }
       new public string TypeOf ()
       {
           return ("long");
       }
   }

}


      </source>


simulate a bank account

<source lang="csharp"> using System; public class BankAccount {

   public static int nNextAccountNumber = 1000;
   public int nAccountNumber;
   public double dBalance;
   
   public void InitBankAccount() {
       nAccountNumber = ++nNextAccountNumber;
       dBalance = 0.0;
   }
   public void Deposit(double dAmount) {
       if (dAmount > 0.0) {
           dBalance += dAmount;
       }
   }
   public double Withdraw(double dWithdrawal) {
       if (dBalance <= dWithdrawal) {
           dWithdrawal = dBalance;
       }
       dBalance -= dWithdrawal;
       return dWithdrawal;
   }

}

</source>


This program creates two Building objects

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// This program creates two Building objects.


using System;

class Building {

 public int floors;    // number of floors 
 public int area;      // total square footage of building 
 public int occupants; // number of occupants 

}

// This class declares two objects of type Building. public class BuildingDemo1 {

 public static void Main() {   
   Building house = new Building();   
   Building office = new Building(); 

   int areaPP; // area per person 
  
   // assign values to fields in house 
   house.occupants = 4;  
   house.area = 2500;  
   house.floors = 2;  

   // assign values to fields in office 
   office.occupants = 25;  
   office.area = 4200;  
   office.floors = 3;  
  
   // compute the area per person in house 
   areaPP = house.area / house.occupants;  
  
   Console.WriteLine("house has:\n  " + 
                     house.floors + " floors\n  " + 
                     house.occupants + " occupants\n  " + 
                     house.area + " total area\n  " + 
                     areaPP + " area per person"); 

   Console.WriteLine(); 

   // compute the area per person in office 
   areaPP = office.area / office.occupants;  

   Console.WriteLine("office has:\n  " + 
                     office.floors + " floors\n  " + 
                     office.occupants + " occupants\n  " + 
                     office.area + " total area\n  " + 
                     areaPP + " area per person"); 
 }   

}

      </source>


Uses a class from Example16_3a.cs

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example16_3b.cs uses a class from Example16_3a.cs
  • /

using System; using StringSwitch; // name space define in Example16_3c.cs public class Example16_3b {

 public static void Main() 
 {
   string localString;
   MySwitch s = new MySwitch();
   s.inString="abcdef";
   s.upper(out localString);
   Console.WriteLine(localString);
 }

} //=========================================================== /*

 Example16_3c.cs provides manifest information for Example 16_3
  • /

using System.Reflection; [assembly: AssemblyTitle("Example 16.3")] [assembly: AssemblyVersion("1.0.0.0")]

//=========================================================== /*

 Example16_3a.cs creates a namespace with a single class
  • /

using System; namespace StringSwitch {

 class MySwitch 
 {
   string privateString;
   public string inString 
   {
     get 
     {
       return privateString;
     }
     set
     {
       privateString = value;
     }
   }
   public void upper(out string upperString)
   {
     upperString = privateString.ToUpper();
   }
 }

}


      </source>


Using Initializers

<source lang="csharp">

public class Product {

   public string make = "Ford";
   public string model = "T";
   public string color;  // default value of null
   public int yearBuilt = 1910;
   public void Start() {
       System.Console.WriteLine(model + " started");
   }
   public void Stop() {
       System.Console.WriteLine(model + " stopped");
   }

} class MainClass {

   public static void Main() {
       Product myProduct = new Product();
       System.Console.WriteLine("myProduct.make = " + myProduct.make);
       System.Console.WriteLine("myProduct.model = " + myProduct.model);
       if (myProduct.color == null) {
           System.Console.WriteLine("myProduct.color is null");
       }
       System.Console.WriteLine("myProduct.yearBuilt = " + myProduct.yearBuilt);
   }

}

</source>


Variable in and out a class

<source lang="csharp"> /* Learning C# by Jesse Liberty Publisher: O"Reilly ISBN: 0596003765

  • /
using System;
namespace heap
{
    public class Dog
    {
        public int weight;
    }
   public class TesterClass
   {
      public void Run()
      {
          // create an integer
          int firstInt = 5;
          // create a second integer
          int secondInt = firstInt;
          // display the two integers
          Console.WriteLine("firstInt: {0} secondInt: {1}",
              firstInt, secondInt);
          // modify the second integer
          secondInt = 7;
          // display the two integers
          Console.WriteLine("firstInt: {0} secondInt: {1}",
              firstInt, secondInt);
          // create a dog
          Dog milo = new Dog();
          // assign a value to weight
          milo.weight = 5;
          // create a second reference to the dog
          Dog fido = milo;
          // display their values
          Console.WriteLine("Milo: {0}, fido: {1}",
              milo.weight, fido.weight);
          // assign a new weight to the second reference
          fido.weight = 7;
          // display the two values
          Console.WriteLine("Milo: {0}, fido: {1}",
              milo.weight, fido.weight);
      }
      static void Main()
      {
         TesterClass t = new TesterClass();
         t.Run();
      }
   }
}
          
      </source>