|
Listing 13-35 extracted from chapter
Generics
Listing 13-34< > Listing 13-36
This listing can be compiled with the command line: csc.exe /target:exe Example_13_35.cs Errors: 1 Warnings: 0
Example_13_35.cs
delegate void GenericDelegateA<U>(U u);
delegate void GenericDelegateB(int i);
delegate U GenericDelegateC<U>();
class Program {
static void Fct1<T>(T t) { return; }
static T Fct2<T>() { return default(T); }
static void Main() {
GenericDelegateA<string> d1 = Fct1; // The compiler infers
// 'Fct1<string>'.
GenericDelegateB d2 = Fct1; // The compiler infers 'Fct1<int>'.
GenericDelegateC<string> d3 = Fct2<string>; // OK but no inference.
// Compilation error: The type arguments for method
// 'Program.Fct2<T>()' cannot be inferred from the usage.
GenericDelegateC<string> d4 = Fct2;
}
}
Copyright Patrick Smacchia 2006 2007
|