When you call a generic method, you can provide a type argument, indicating the type for any type parameters, or you can let the type be inferred by the compiler.
For the following type definition:
1
| public static void DogBuriesThing<T>(Dog d, T thing) |
You can either provide the type argument:
1
2
| Dog buster = new Dog("Buster", 5);Dog.DogBuriesThing<Bone>(buster, new Bone("Buster's rawhide")); |
Or you can omit the type when you call the method, letting the type be inferred based on the type of the second argument:
Dog.DogBuriesThing(buster, new Cow("Bessie")); |

