Background
I am writing code in VS 2010, .NET 4, C#. Also, in case it matters, I am using the latest version of ReSharper.
Question
Let’s say I have this model:
public class SomeObject
{
public string Red{ get; set; }
public string Green{ get; set; }
public string Blue{ get; set; }
public string Yellow{ get; set; }
public string Purple{ get; set; }
public string Orange{ get; set; }
public string Black{ get; set; }
}
Elsewhere in the code, I need to instantiate one of these objects, like so:
SomeObject myObject = new SomeObject{
red = "some value",
blue = "some other value",
. . .,
black="last value"
};
*NOTE:*I will sometimes want to initialize this object with only a subset of its total possible properties (i.e. just red and blue).
At the moment, I am having to type in each property (red, blue, green, etc) for each new instance of SomeObject. Is there a hotkey or something in VS2010 to have those properties pre-populated so I just have to assign values to each rather than typing each one?
Personally, if you need to set these for every object instance, I would handle this by adding a constructor that takes all of the parameters, and just not use the object initialization syntax. This will give you full intellisense, but also help/force you to construct the object correctly every time.
Remember, a type’s constructor should force you to supply all parameters required to correctly initialize the object to a proper state. The one downside to object initializers is that they don’t force this at compile time. As such, if all of these properties are required for each object instance, the constructor should supply them instead of using object initializers.