Language Basics C# Book

this is referencing the current type.
using System;
class Rectangle {
public int Width;
public int Height;
public Rectangle(int w = 5, int h = 6){
this.Width = w;
this.Height = h;
}
}
class Program
{
static void Main(string[] args)
{
Rectangle r = new Rectangle();
Console.WriteLine(r.Width);
Console.WriteLine(r.Height);
}
}
The output:
5
6
this can be used to avoid name shading.
using System;
class Rectangle {
public int Width;
public int Height;
public Rectangle(int Width, int Height){
this.Width = Width;
this.Height = Height;
}
}
class Program
{
static void Main(string[] args)
{
Rectangle r = new Rectangle(2,3);
Console.WriteLine(r.Width);
Console.WriteLine(r.Height);
}
}
The output:
2
3
this cannot be used in static context.