小编jac*_*ack的帖子

C# - 传入一个可能在其他地方改变的布尔值,但我不想改变方法

我有一个方法需要对isCanceling标志作出反应.它应该能够在其他地方更改并在方法中注意到,但我不希望能够在方法中更改布尔值.我在下面的内容中,如果传入的布尔值在其他地方更改,我认为将能够读取bool,但我想确保在此上下文中无法更改isCanceling.那可能吗?

public static bool DoSomething(ref bool isCanceling)
{
    while(whileLoopFlag && !isCanceling)
    {
        //doTheThing()
    }
}
Run Code Online (Sandbox Code Playgroud)

c#

3
推荐指数
1
解决办法
61
查看次数

将列表设置为自身是否有任何性能损失?

我有一个列表,如果尚未实例化,可能为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)

显然不是世界末日,但我仍然很好奇.

c# performance list

2
推荐指数
1
解决办法
123
查看次数

标签 统计

c# ×2

list ×1

performance ×1