Constructor overloading
In this chapter you will learn:
overloaded constructor
Constructors can be overloaded as well.
We can overload a constructor by using different types of
parameters. The following code creates a class named MyClass
and
we add several constructors with different parameter types.
In this way we can pass in different types of value to the constructors
and C# compiler would figure out which constructors to call.
using System; /*ja v a 2 s . c o m*/
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;
}
}
class MainClass {
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);
}
}
The code above generates the following result.
this() and constructor
To call its overloaded constructor we can use this
.
The following code creates a class Rectangle
. In the default constructor
we call the Rectangle(int w, int h)
by using this(0,0)
.
using System;// j a v a 2 s . c o m
class Rectangle {
public int Width;
public int Height;
public Rectangle():this(0,0){
}
public Rectangle(int w, int h){
Width = w;
Height = h;
}
}
class Program
{
static void Main(string[] args)
{
Rectangle r = new Rectangle();
Console.WriteLine(r.Width);
Rectangle r2 = new Rectangle(2, 3);
Console.WriteLine(r.Width);
}
}
The output:
Next chapter...
What you will learn in the next chapter:
Home » C# Tutorial » Class