Dejo este snippet para visual studio. Inserta una propiedad, sólo que antes de devolver el valor, comprueba que exista. Si no existe, devuelve una nueva instancia.
Algo así como:
Se invoca con propi + tab + tab
<?xml version="1.0" encoding="utf-8" ?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet"> <CodeSnippet Format="1.0.0"> <Header> <Title>propi</Title> <Shortcut>propi</Shortcut> <Description>Code snippet for property and backing field with value inicialization.</Description> <Author>crisfervil</Author> <SnippetTypes> <SnippetType>Expansion</SnippetType> </SnippetTypes> </Header> <Snippet> <Declarations> <Literal> <ID>type</ID> <ToolTip>Property type</ToolTip> <Default>int</Default> </Literal> <Literal> <ID>property</ID> <ToolTip>Property name</ToolTip> <Default>MyProperty</Default> </Literal> <Literal> <ID>field</ID> <ToolTip>The variable backing this property</ToolTip> <Default>myVar</Default> </Literal> </Declarations> <Code Language="csharp"><![CDATA[private $type$ $field$; public $type$ $property$ { get { if($field$==null) $field$=new $type$(); return $field$; } set { $field$ = value;} } $end$]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
Crossposted from crisfervil.com