title: what does this attribute do: MethodImplOptions.NoInlining (or: what is 'inlining' a method)
body: <blockquote>
    <p><strong>Possible Duplicate:</strong><br>
    <a href="https://stackoverflow.com/questions/473782/inline-functions-in-c">Inline functions in C#?</a><br>
    <a href="https://stackoverflow.com/questions/3924995/what-is-method-inlining">What is method inlining?</a>  </p>
  </blockquote>
  
  
  
  <p>i've been debugging code, and a 'possible' source of the issue is in a function which is marked with this code:</p>
  
  <pre><code>[System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)]
  protected virtual void PropertyHasChanged()
  </code></pre>
  
  <p>Reading MSDN says this: <strong>Specifies that the method cannot be inlined.</strong></p>
  
  <p>But what is 'inlining' a method?</p>
  
  <p>EDIT:</p>
  
  <p>To clarify: the <code>PropertyHasChanged()</code> method is called in the SET method of every property and updates (adds 1 to it) an internal object counter. When that counter > 0, the object is marked as 'dirty' and will be saved to the database when Save is called. When the counter = 0, the object will not be saved to the database. Now i've got the idea that this code sometimes is not executed (the counter is not increased) so the object won't be saved to the database,</p>