In addition to classes, structs and interfaces, a method can also be generic. A generic method is one that is declared with type parameters. A generic method can be either a static method or an instance method.
In the example below, notice that both methods are generic, though the Dog class itself is not generic.
1
2
3
4
5
6
7
8
9
10
11
12
13
| public class Dog{ // Generic static method public static void DogBuriesThing<T>(Dog d, T thing) { Console.WriteLine(string.Format("{0} is burying: {1}", d.Name, thing.ToString())); } // Generic instance method public void BuryThing<T>(T thing) { Console.WriteLine(string.Format("{0} is burying: {1}", Name, thing.ToString())); } |
Examples of calling these methods:
1
2
3
4
5
6
| // Call generic static methodDog buster = new Dog("Buster", 5);Dog.DogBuriesThing<Bone>(buster, new Bone("Buster's rawhide"));// Call generic instance methodbuster.BuryThing<Cow>(new Cow("Bessie")); |

