title: c# properties with the same name
body: <p>Please point me in the right direction if there is an answer to my question already. </p>
  
  <p>I am new to c# and asp.net mvc. I am working on a project and in this particular project I have a model that reflects how the customer table will be structured when I run a migration. have a look at my Customer model:</p>
  
  <pre><code>using System;
  using System.ComponentModel.DataAnnotations;
  
  namespace Vidly.Models
  {
      public class Customer
      {
          public int Id { get; set; }
  
          [Required]
          [StringLength(255)]
          public string Name { get; set; }
  
          public bool IsSubscribedToNewsletter { get; set; }
  
          public MembershipType MembershipType { get; set; }
  
          [Display(Name = "Membership Type")]
          public byte MembershipTypeId { get; set; }
  
          [Display(Name = "Date of Birth")]
          [Min18YearsIfAMember]
          public DateTime? Birthdate { get; set; }
      }
  }
  </code></pre>
  
  <p>My question, I understand what it means to set string to the name property
  ex: </p>
  
  <pre><code>public string Name { get; set; }
  </code></pre>
  
  <p>but what does it mean when some properties are set to their own name and why do we do it?
  ex:</p>
  
  <pre><code>public MembershipType MembershipType { get; set; }
  </code></pre>
  
  <p>Please give a detailed response. 
  Thanks. </p>