将T类型的重构器字段重新划分为Lazy<;T>;
本文关键字:划分 lt gt Lazy 重构 类型 字段 新划分 | 更新日期: 2023-09-27 18:00:28
有没有一种简单的方法可以将类型为T的字段/属性重构为Lazy,并将该字段的所有用法替换为使用FieldName.Value?
我有一个控制器,它有一堆存储在专用支持字段中的依赖项,但任何给定的函数调用都只需要其中的几个依赖项。为了加快这个控制器的构建,我想让所有的依赖项都变得懒惰,但手工操作的工作量太大了。有什么建议吗?
-
Tools
>Create GUID
-
Resharper
>Refactor
>Rename
Foo=>Foo_299E4ADB-5770-458C-B030-E40E19B0FFAF
-
Edit
>Find and Replace
>Replace in Files
_299E4ADB-5770-458C-B030-E40E19B0FFAF=>.值
如果以前有,
public class LazyClass
{
// initialized in constructor etc.
public MyType MyTypeProperty { get; set; }
}
然后您可以使其延迟加载,而不会影响调用方,如下所示:
public class LazyClass
{
private Lazy<MyType> myType = new Lazy<MyType>(() => new MyType());
public MyType MyTypeProperty
{
get { return this.myType.Value; }
}
}
我怀疑Resharper是否内置了这种重新分解。无论如何,你不希望所有调用方都知道它是Lazy并将其称为LazyType.Value
。不要暴露懒惰型。