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?
Objects can be initialized using new Object() , Object. create() , or using the literal notation (initializer notation).
To create an object of a named class by using an object initializer. Begin the declaration as if you planned to use a constructor. Type the keyword With , followed by an initialization list in braces. In the initialization list, include each property that you want to initialize and assign an initial value to it.
initializing means setting value to an object.(does not necessarily create new instance). assigning is self descriptive. assign a value to an object.
You can use Smart Code Completion.
Write: new SomeObject{
Then press Ctrl+Alt+Space: -> All possible properties are listed in a tooltip window
Then select a property (i.e. 'Red') and press ENTER -> new SomeObject{Red = }
Then type in "," and press again Ctrl+Alt+Space, select next property and so on.
At the moment, I am having to type in each property (red, blue, green, etc) for each new instance of SomeObject.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With