Los genéricos utilizados en la estructura vs clase
Supongamos que tenemos los siguientesstruct
definición que utiliza genéricos:
public struct Foo<T>
{
public T First;
public T Second;
public Foo(T first)
{
this.First = first;
}
}
El compilador dice
'Foo.Second' debe estar completamente asignado antes de devolver el control a la persona que llama
Sin embargo, siFoo
Es una clase, luego se compila exitosamente.
public class Foo<T>
{
public T First;
public T Second;
public Foo(T first)
{
this.First = first;
}
}
¿Por qué? ¿Por qué el compilador los trata de manera diferente? Además, si no se define ningún constructor en la primeraFoo
entonces se compila. ¿Por qué este comportamiento?