title: What does the keyword "new" do to a struct in C#?
body: <p>In C#, Structs are managed in terms of values, and objects are in reference. From my understanding, when creating an instance of a class, the keyword <code>new</code> causes C# to use the class information to make the instance, as in below:</p>
  
  <pre><code>class MyClass
  {
      ...
  }
  MyClass mc = new MyClass();
  </code></pre>
  
  <p>For struct, you're not creating an object but simply set a variable to a value:</p>
  
  <pre><code>struct MyStruct
  {
      public string name;
  }
  MyStruct ms;
  //MyStruct ms = new MyStruct();     
  ms.name = "donkey";
  </code></pre>
  
  <p>What I do not understand is if declare variables by <code>MyStruct ms = new MyStruct()</code>, what is the keyword <code>new</code> here is doing to the statement? . If struct cannot be an object, what is the <code>new</code> here instantiating?</p>