我有一个方法需要对isCanceling标志作出反应.它应该能够在其他地方更改并在方法中注意到,但我不希望能够在方法中更改布尔值.我在下面的内容中,如果传入的布尔值在其他地方更改,我认为将能够读取bool,但我想确保在此上下文中无法更改isCanceling.那可能吗?
public static bool DoSomething(ref bool isCanceling)
{
while(whileLoopFlag && !isCanceling)
{
//doTheThing()
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个列表,如果尚未实例化,可能为null,我想在调用GetList()时能够返回现有或创建列表然后返回.这看起来更干净:
private List<object> m_objects;
public List<object> GetList()
{
m_objects = m_objects ?? new List<object>();
return m_objects;
}
Run Code Online (Sandbox Code Playgroud)
但是将列表设置为自身会有性能损失,还是C#意识到这不是必需的?
替代方案是:
private List<object> m_objects;
public List<object> GetList()
{
if(m_objects != null)
{
return m_objects;
}
m_objects = new List<object>();
return m_objects;
}
Run Code Online (Sandbox Code Playgroud)
显然不是世界末日,但我仍然很好奇.