Sar*_*els 7 c# resharper null nullable
我有以下代码:
private static LogLevel? _logLevel = null;
public static LogLevel LogLevel
{
    get
    {
        if (!_logLevel.HasValue)
        {
            _logLevel = readLogLevelFromFile();
        }
        return _logLevel.Value;
    }
}
private static LogLevel readLogLevelFromFile() { ... }
我在return关于可能性的声明中得到了ReSharper警告System.InvalidOperationException,它建议我检查_logLevel它是否是null第一个.然而,readLogLevelFromFile回报LogLevel,没有LogLevel?,所以没有办法的return时候语句可以达成_logLevel的null.这只是ReSharper的疏忽,还是我错过了什么?
这看起来像是Resharper中的一个错误.
但请注意,这不是线程安全的.
执行此操作的最佳方法是使用静态初始化程序,如下所示:
public static LogLevel Instance { get { return Nested.level; } }
class Nested {
    // Explicit static constructor to tell C# compiler
    // not to mark type as beforefieldinit
    static Nested() { }
    internal static readonly LogLevel level = readLogLevelFromFile();
}
| 归档时间: | 
 | 
| 查看次数: | 2123 次 | 
| 最近记录: |