For what do you need such "optional Variables" ?
If your class should have this Variables for the usage 1 and needs not some Variables for usage 2 I don't understand the problem.
If you don't need the Variables then don't use them.
If the Variables (in your code-snippet I see them as Properties) should have default Values then use an internal Variable for the Property which has a Start-Value :
public int BorderSize {
get { return my_BorderSize; }
set { my_BorderSize = value; }
}
private int my_BorderSize = 1;