title: Cannot pass 'this' as a ref or out argument because it is read-only
body: <p>My class that passes itself to a method in another class. This external method (the last line in the code below) alters the object I’m passing accordingly, returns control, and continues on its merry way. But the last line  <code>ThisPaymentGateway.Process(ref this);</code> says this at design time:</p>
  
  <blockquote>
    <p>Cannot pass 'this' as a ref or out argument because it is read-only***</p>
  </blockquote>
  
  <p>There are no read-only properties there. How can I resolve this?</p>
  
  <pre><code>using System;
  
  namespace Something
  {
    namespace Finance
    {
      namespace Donations
      {
        public class Electronic1 : Donation
        {
          private PaymentGateway ThisPaymentGateway { get; set; } = new PaymentGateway();
  
          public void RunController()
          {
            if (DonorType.ToUpper() == "IND" &amp;&amp; (PaymentMethod.ToUpper() == "CREDIT CARD" || PaymentMethod.ToUpper() == "ECHECK"))
            {
              ThisPaymentGateway.Process(ref this);
            }
          }
        }
      }
    }
  }
  </code></pre>