title: The "nameof " operator,"expression cannot be used in an argument to nameof"
body: <p>I got a simple class:</p>
  
  <pre><code>public class Stu
  {
      public string Name { get; set; }
  }
  </code></pre>
  
  <p>If I do like this:</p>
  
  <pre><code>var stu = new Stu();
  Console.WriteLine(nameof(stu.Name));
  </code></pre>
  
  <p>it works well.
  but this:</p>
  
  <pre><code>Console.WriteLine(nameof(new Stu().Name));
  </code></pre>
  
  <p>or this:</p>
  
  <pre><code>Console.WriteLine(nameof((new Stu()).Name));
  </code></pre>
  
  <p>not work,the complier tells me :"expression cannot be used in an argument to nameof".</p>
  
  <p>I don't know why.What the tip means for?What is the corret parameter type of the operator "nameof()"?</p>
  
  <p>I searched the web,<a href="http://www.c-sharpcorner.com/UploadFile/7ca517/the-new-feature-of-C-Sharp-6-0-nameof-operator/" rel="noreferrer">this</a> page tells me the "expression may be a property-group or a method-group",but is the expression "new Stu().Name" not a "property-group"?</p>