我需要不断编写的最繁琐的语法是在字典中懒惰地初始化一个容器,例如:
ContainerRecord value;
if(!_dictionary.TryGetValue(key,out value))
{
value = new ContainerRecord();
_dictionary[key] = value;
}
//Container is always initialized here
我觉得这将是一个微不足道的重构模式:(至少对于显式变量声明和 if 语句部分)
var value = _dictionary[key];
我知道在较新版本的 C# 中有一些新的语法糖可以消除预先声明变量的需要。不幸的是,我无法在我的环境中使用这些功能,并且在可预见的未来也不会。
似乎确实有一个“检查包含键”重构,它实现了几乎相同的结果,但缺点是两次查找。
这可以通过一些扩展来实现吗?我认为这是一个足够普遍的情况,它已经在某个地方解决了。