/* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // Demonstrate an overloaded constructor. using System; class MyClass { public int x; public MyClass() { Console.WriteLine("Inside MyClass()."); x = 0; } public MyClass(int i) { Console.WriteLine("Inside MyClass(int)."); x = i; } public MyClass(double d) { Console.WriteLine("Inside MyClass(double)."); x = (int) d; } public MyClass(int i, int j) { Console.WriteLine("Inside MyClass(int, int)."); x = i * j; } } public class OverloadConsDemo { public static void Main() { MyClass t1 = new MyClass(); MyClass t2 = new MyClass(88); MyClass t3 = new MyClass(17.23); MyClass t4 = new MyClass(2, 4); Console.WriteLine("t1.x: " + t1.x); Console.WriteLine("t2.x: " + t2.x); Console.WriteLine("t3.x: " + t3.x); Console.WriteLine("t4.x: " + t4.x); } }
Month: February 2011
Add more constructors to TwoDShape
/* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // Add more constructors to TwoDShape. using System; class TwoDShape { double pri_width; // private double pri_height; // private // Default constructor. public TwoDShape() { width = height = 0.0; } // Constructor for TwoDShape. public TwoDShape(double w, double h) { width = w; height = h; } // Construct object with equal width and height. public TwoDShape(double x) { width = height = x; } // Properties for width and height. public double width { get { return pri_width; } set { pri_width = value; } } public double height { get { return pri_height; } set { pri_height = value; } } public void showDim() { Console.WriteLine("Width and height are " + width + " and " + height); } } // A derived class of TwoDShape for triangles. class Triangle : TwoDShape { string style; // private /* A default constructor. This automatically invokes the default constructor of TwoDShape. */ public Triangle() { style = "null"; } // Constructor that takes three arguments. public Triangle(string s, double w, double h) : base(w, h) { style = s; } // Construct an isosceles triangle. public Triangle(double x) : base(x) { style = "isosceles"; } // Return area of triangle. public double area() { return width * height / 2; } // Display a triangle's style. public void showStyle() { Console.WriteLine("Triangle is " + style); } } public class Shapes5 { public static void Main() { Triangle t1 = new Triangle(); Triangle t2 = new Triangle("right", 8.0, 12.0); Triangle t3 = new Triangle(4.0); t1 = t2; Console.WriteLine("Info for t1: "); t1.showStyle(); t1.showDim(); Console.WriteLine("Area is " + t1.area()); Console.WriteLine(); Console.WriteLine("Info for t2: "); t2.showStyle(); t2.showDim(); Console.WriteLine("Area is " + t2.area()); Console.WriteLine(); Console.WriteLine("Info for t3: "); t3.showStyle(); t3.showDim(); Console.WriteLine("Area is " + t3.area()); Console.WriteLine(); } }
Add constructors to TwoDShape
/* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // Add constructors to TwoDShape. using System; // A class for two-dimensional objects. class TwoDShape { double pri_width; // private double pri_height; // private // Constructor for TwoDShape. public TwoDShape(double w, double h) { width = w; height = h; } // properties for width and height. public double width { get { return pri_width; } set { pri_width = value; } } public double height { get { return pri_height; } set { pri_height = value; } } public void showDim() { Console.WriteLine("Width and height are " + width + " and " + height); } } // A derived class of TwoDShape for triangles. class Triangle : TwoDShape { string style; // private // Call the base class constructor. public Triangle(string s, double w, double h) : base(w, h) { style = s; } // Return area of triangle. public double area() { return width * height / 2; } // Display a triangle's style. public void showStyle() { Console.WriteLine("Triangle is " + style); } } public class Shapes4 { public static void Main() { Triangle t1 = new Triangle("isosceles", 4.0, 4.0); Triangle t2 = new Triangle("right", 8.0, 12.0); Console.WriteLine("Info for t1: "); t1.showStyle(); t1.showDim(); Console.WriteLine("Area is " + t1.area()); Console.WriteLine(); Console.WriteLine("Info for t2: "); t2.showStyle(); t2.showDim(); Console.WriteLine("Area is " + t2.area()); } }
Add a constructor to Triangle
/* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852 */ // Add a constructor to Triangle. using System; // A class for two-dimensional objects. class TwoDShape { double pri_width; // private double pri_height; // private // properties for width and height. public double width { get { return pri_width; } set { pri_width = value; } } public double height { get { return pri_height; } set { pri_height = value; } } public void showDim() { Console.WriteLine("Width and height are " + width + " and " + height); } } // A derived class of TwoDShape for triangles. class Triangle : TwoDShape { string style; // private // Constructor public Triangle(string s, double w, double h) { width = w; // init the base class height = h; // init the base class style = s; // init the derived class } // Return area of triangle. public double area() { return width * height / 2; } // Display a triangle's style. public void showStyle() { Console.WriteLine("Triangle is " + style); } } public class Shapes3 { public static void Main() { Triangle t1 = new Triangle("isosceles", 4.0, 4.0); Triangle t2 = new Triangle("right", 8.0, 12.0); Console.WriteLine("Info for t1: "); t1.showStyle(); t1.showDim(); Console.WriteLine("Area is " + t1.area()); Console.WriteLine(); Console.WriteLine("Info for t2: "); t2.showStyle(); t2.showDim(); Console.WriteLine("Area is " + t2.area()); } }
Constructor overloading 3
/* * 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 CTORChapter { public int[] MyIntArray; public int Y; //Initialization can take place here private int ObjectCount = 0; static void Main(string[] args) { CTORChapter X = new CTORChapter(); X.ObjectCount++; CTORChapter YY = new CTORChapter(10); } //Default CTORChapter CTORChapter() { MyIntArray = new int[10]; //Do work necessary during object creation } //Overloads the CTOR allowing you to initialize Y CTORChapter(int myY) { Y = myY; } } }
Check the parameter in construtor
using System;
public class Class1 {
public static void Main(string[] args) {
Student student = new Student(“AAA”, 1234);
Console.WriteLine(“Welcome new student {0}”, student.GetString());
}
}
public class Student {
string sStudentName;
int nStudentID;
int nCreditHours;
public Student(string sName, int nID) {
if (sName == null) {
sName = “invalid”;
}
sStudentName = sName;
if (nID < 0) { nID = 0; } nStudentID = nID; nCreditHours = 0; } public string GetString() { string s = String.Format("{0}({1})",sStudentName, nStudentID); return s; } } [/csharp]
constructor initializers are called bottom-up but the constructors are invoked top-down starting with the constructor in the base class
using System; public class Starter { public static void Main() { XClass obj = new XClass(); } } public class MyClass { public MyClass(int param) { Console.WriteLine("MyClass constructor"); } } public class YClass : MyClass { public YClass(int param) : base(YClass.MethodA()) { Console.WriteLine("YClass constructor"); } public static int MethodA() { Console.WriteLine("YClass constructor initializer"); return 0; } } public class XClass : YClass { public XClass() : base(XClass.MethodA()) { Console.WriteLine("XClass constructor"); } public static new int MethodA() { Console.WriteLine("XClass constructor initializer"); return 0; } }