更新引用的变量赋值
本文关键字:赋值 变量 引用 更新 | 更新日期: 2023-09-27 18:02:07
我找了很多,但没有找到答案。
这是我的:
Wrapper _wrap1;
Wrapper _wrap2;
public Wrapper GetWrapper(int num)
{
Wrapper cachedWrapper = num == 1 ? _wrap1 : _wrap2;
if(cachedWrapper == null)
{
cachedWrapper = new Wrapper();
}
return cachedWrapper;
}
我知道' cachedWrapper
'是一个新的引用,对_wrap1
或_wrap2
都没有影响。
我正在寻找一种优雅的方式来更新这些字段,而不需要额外的if语句。
我的类有很多不仅仅是2个Wrapper,我有更多的类型不仅仅是'Wrapper'。
谢谢
没有办法精确地做到你所要求的。
但是,根据blogbeard的评论,你可以使用字典:
using System.Collections.Concurrent;
ConcurrentDictionary<int, Wrapper> wrapperDictionary;
public Wrapper GetWrapper(int num)
{
return wrapperDictionary.GetOrAdd(num, _ => new Wrapper());
}