En C#, las estructuras se gestionan en términos de valores y los objetos están en referencia. Desde mi entender, al crear una instancia de una clase, la palabra clave new
causa C# para usar la información de clase para hacer el caso, como en a continuación:¿Qué significa la palabra clave "nuevo" para una estructura en C#?
class MyClass
{
...
}
MyClass mc = new MyClass();
Por estructura, no se va a crear un objeto, sino simplemente establecer una variable a un valor:
struct MyStruct
{
public string name;
}
MyStruct ms;
//MyStruct ms = new MyStruct();
ms.name = "donkey";
lo que no entiendo es si declarar variables por MyStruct ms = new MyStruct()
, lo que es la palabra clave aquí new
está haciendo a la declaración? . Si struct no puede ser un objeto, ¿cuál es el new
aquí instanciando?
Una instancia de una 'struct' * es * un objeto. La distinción que probablemente malinterprete es la que existe entre los tipos de valores y los tipos de referencia. –
pero en C no hay objeto y struct no es un objeto. Entonces, ¿en C# struct se implementa como objeto? – KMC
Pensar en C# en términos de C no es útil. Ignora las diferencias sintácticas, son idiomas completamente diferentes. –