title: How do I use a C# reserved keyword as a property name without the @ prefix?
body: <p>I need to design a class where one property name has to be <code>return</code>, but when I create a property name like <code>return</code> then I get an error. </p>
  
  <p>After some research I found out that one can use a reserved keyword as a property or variable name by adding a <code>@</code> prefix in C#, or by enclosing it in square brackets <code>[]</code> in VB.NET. For example: </p>
  
  <pre><code>var @class = new object();
  </code></pre>
  
  <p>So here is my class design code.</p>
  
  <pre><code>public class Person
  {
      string _retVal;
  
      public string @return
      {
          get { return _retVal; }
          set { _retVal = value; }
      }
  }
  
  ...
  Person p = new Person();
  p.@return = "hello";
  </code></pre>
  
  <p>Now I am not getting any error, but when I try to access property name like <code>return</code> then I need to write the name like <code>@return</code>, which I don't want. I want to access the property name like <code>p.return = "hello";</code> instead of <code>p.@return = "hello";</code> so I'd like to know if there is any way to do that?</p>