title: How to force a client to set certain properties
body: <p>My class has ten properties that must be set before the class can be used.</p>
  
  <p>I want to force (or at least very strongly encourage, preferably with warnings) a user of my class to set these properties before calling any methods of the class.</p>
  
  <p>I could use a constructor that takes values for all the properties as parameters but I don't want to because that many parameters would be unwieldy.</p>
  
  <p>I could check the values of the properties inside all the methods of the class but this is too late - I want a compile-time check.</p>
  
  <p>What can I do?</p>