title: UnassignedReferenceException even though using the null-conditional operator
body: <p>I'm getting a <code>UnassignedReferenceException: The variable _Preset of Foo has not been assigned.</code> even though I'm using the <a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-conditional-operators" rel="nofollow noreferrer">null-conditional operator</a> <code>?.</code>. </p>
  
  <p><strong>My code:</strong></p>
  
  <pre><code>// […]
  myTarget.Preset?.ApplyTo(myTarget);
  </code></pre>
  
  <p>I'm also noticing that it mentions <code>_Preset</code> instead of <code>Preset</code> (which I find odd).</p>
  
  <p><strong>Code in <code>Foo.cs</code> :</strong></p>
  
  <pre><code>[CreateAssetMenu()]
  public class Foo : ScriptableObject
  {
      [SerializeField] private Preset _Preset = null;
  
      public Preset Preset
      {
          get { return _Preset; }
          protected set { _Preset = value; }
      }
  }
  </code></pre>
  
  <p>What am I doing wrong? Isn't it what the operator is for?</p>
  
  <p>Google searches didn't help.</p>