CSharp · Console
using System;
public interface Container {
int ID {get; set;}
}
public class Auto : Container {
public int ID {get; set;}
}
public class One<T> where T : Container{
public void Do(T x) {
Console.WriteLine(x.ID);
}
}
public class Two {
public void Do<T>(T x) where T: Container {
Console.WriteLine(x.ID);
}
}
public class Program
{
public static void Main()
{
var skoda = new Auto{
ID = 10
};
var one = new One<Auto>();
one.Do(skoda);
var two = new Two();
two.Do<Auto>(skoda);
var twoBetter = new Two();
twoBetter.Do(skoda); // type inference - pozna typ
}
}