我已经使用ReSharper从代码中创建了属性(从一些太长的方法中移出):
private static SomeFunctions XmlSomeFunctions
{
get
{
// some logic
return someFunctions;
}
}
但是,我希望它是这样的:
private static SomeFunctions xmlSomeFunctions;
private static SomeFunctions XmlSomeFunctions
{
get
{
if (xmlSomeFunctions == null)
{
// some logic
xmlSomeFunctions = someFunctions;
}
return xmlSomeFunctions;
}
}
但是我没有在ReSharper的上下文菜单中找到任何条目( Ctrl + Shift + R = Refactor This),这可能对我有帮助有了这个任务。有什么方法可以使用ReSharper自动创建上面的代码吗?
如果我不会重写此代码(现在手动,最好是使用ReSharper,如果我知道如何),如果我在代码中的不同位置请求XmlSomeFunctions,我会多次执行该逻辑(而不是一次)
答案 0 :(得分:2)
你真正想要做的是创建一个懒惰的实例化属性。更好的方法是使用.Net中的Lazy类。重新使用这个类而不是尝试使用resharper自动化重复代码将是我的建议。
请参阅http://msdn.microsoft.com/en-us/library/dd642331(v=vs.110).aspx
答案 1 :(得分:1)
你确实有这种可能性。将光标放在属性名称(XmlSomeFunctions
)上,然后单击左侧的锤子图标。
您必须自己添加if
声明。