title: Is it less 'expensive' to pass the field of an object as opposed to the whole object itself?
body: <p>Consider the following class:</p>
  
  <pre><code>public class Person
  {
      public String FirstName;
      public String LastName;
      public DateTime DateOfBirth;
      public StaffType PersonType;
  }
  </code></pre>
  
  <p>And the following 2 methods and method calls:</p>
  
  <pre><code>public void DoSomethingWithPersonType(Person person)
  {
      TestMethod(person.PersonType);
  }
  </code></pre>
  
  <p>(called by <code>DoSomethingWithPersonType(person);</code>)</p>
  
  <pre><code>public void DoSomethingWithPersonType(StaffType personType)
  {
      TestMethod(personType)
  }
  </code></pre>
  
  <p>(called by <code>DoSomethingPersonType(person.PersonType);</code>).</p>
  
  <p>Which method is more efficient? Are they both as 'efficient' as each other? Does it make no difference because it's only one reference passed in anyway? Or does the reference passed differ in some way?</p>
  
  <p>The reason I ask is because I've opted for the first method signature in a current project - and I've done it because at a later date we may need to use other fields of our 'person' - so a more easily scalable/adaptable method is what I've got - but is it a more expensive one?</p>
  
  <p>EDIT: Note - it goes without saying that these differences will be marginal, otherwise I would've already encountered scenarios were the performance implications are evident enough for me to act on. It's simply a matter of curiosity.</p>