In C#, the this keyword refers to the current instance of a class–i.e. the specific instance that an instance method was invoked on.
For example, assume that we have a Dog class and kirby is an instance of this class and that we invoke theDog.PrintNameAndAge method as follows:
1
| kirby.PrintNameAndAge(); |
If the this keyword appears in the implementation of the PrintNameAndAge method, it refers to the kirby object.
1
2
3
4
5
6
7
8
9
| public void PrintNameAndAge(){ Console.WriteLine("{0} is {1} yrs old", Name, Age); // Assume we have a static TrackDogInfo method in // a DogUtilities class--and that it accepts a // parameter that is a reference to a Dog object. DogUtilities.TrackDogInfo(this);} |
We passed a reference to the kirby instance to the TrackDogInfo method. It will therefore have access to all of the instance data in the kirby object, as stored in the object’s fields.

