After reading the C # spec, it really makes sense, but can be confusing.
, , .
class C<T>
{
}
C<T> - , .
C<String> c = new C<String>();
C<T>, , C<String>. Generics - , .
.
class C
{
public C<T>()
{
}
}
, , .
C c = new C<String>();
implicit explicit C C<String>? . .
C - , . , , C<String> C?
, , .
internal class Class<T>
{
private readonly Delegate _delegate;
public Class(Func<T> function)
{
_delegate = function;
}
}
, Class<T>, .
Func<String> function = new Func<String>(() => { return String.Empty; });
Class<String> c = new Class<String>(function);
, , .
Func<String> function = new Func<String>(() => { return String.Empty; });
Class c = new Class<String>(function);
Class<String>, C, implicit explicit . , C .
, .
class C<T>
{
public C<T>()
{
}
}
, , .
C<String> c = new C<String>();
.
public C<String>()
{
}
:
C<String> c = new C<String>();
, , - .
class C<T>
{
public C<U>()
{
}
}
C<String> c = new C<Int32>();
, , . , , , , , , , , .
, , .