В C# структуры управляются в терминах значений, а объекты - по ссылкам. Насколько я понимаю, при создании экземпляра класса ключевое слово new
заставляет C# использовать информацию о классе для создания экземпляра, как показано ниже:
class MyClass
{
...
}
MyClass mc = new MyClass();
Для struct вы не создаете объект, а просто устанавливаете переменную в значение:
struct MyStruct
{
public string name;
}
MyStruct ms;
//MyStruct ms = new MyStruct();
ms.name = "donkey";
Чего я не понимаю, так это если объявить переменные по MyStruct ms = new MyStruct()
, что ключевое слово new
здесь делает с утверждением? . Если struct не может быть объектом, что инстанцирует new
здесь?