1) Classes can be defined with a generic type.
public class MyClass
2) The types can be constrained using this syntax.
where TClass: struct
3) Methods also can gave generic types.
public TMethod ConvertTo()
4) Full Example
public class MyClass where TClass: struct
{
private TClass _Instance;
public MyClass(TClass instance)
{
_Instance = instance;
}
public TMethod ConvertTo()
{
return (TMethod)Convert.ChangeType(_Instance, typeof(TMethod));
}
}