更改一次 ReSharper 检查严重性
Change ReSharper inspection severity once
我想更改一个案例的检查严重性
假设我有一个枚举
enum MyEnum { First, Second, Third }
然后一个开关
void Foo(MyEnum value)
{
// Looking for something like
// Resharper once severity:error SwitchStatementMissingSomeCases
switch (value)
{
case MyEnum.First:
// do something
break;
case MyEnum.Second:
// do something else
break;
// <<< Missing MyEnum.Third
default:
throw new ArgumentOutOfRangeException();
}
}
我希望此代码产生编译错误。可能吗?
我知道可以像下面的代码那样做一些事情,但我想知道在编译时缺少一个案例
void Bar()
{
// do something
}
void Baz()
{
// do something else
}
Dictionary<MyEnum, Action> Handlers = new Dictionary<MyEnum, Action>
{
[MyEnum.First] = Bar
[MyEnum.Second] = Baz
}
void Foo(MyEnum value)
{
if (! Handlers.TryGetValue(value, out Action action))
throw new ArgumentOutOfRangeException();
action();
}
UPD:我不想设置全局检查严重性
UPD2 我有大约 50 个开关(在其他枚举上),其中缺少大小写不是什么大问题,只有几个开关,其中缺少大小写应该是编译错误。可以将全局级别设置为错误并禁用错误 50 次,但是...有点难看
UPD3 不幸的是现在没有办法(22.05.2018)
如果我没理解错的话,您只需点击 Resharper 灯泡并配置它以添加缺失的案例和严重性(错误),
遗憾的是,现在(2018 年 5 月 22 日)没有办法通过简单的评论
我想更改一个案例的检查严重性
假设我有一个枚举
enum MyEnum { First, Second, Third }
然后一个开关
void Foo(MyEnum value)
{
// Looking for something like
// Resharper once severity:error SwitchStatementMissingSomeCases
switch (value)
{
case MyEnum.First:
// do something
break;
case MyEnum.Second:
// do something else
break;
// <<< Missing MyEnum.Third
default:
throw new ArgumentOutOfRangeException();
}
}
我希望此代码产生编译错误。可能吗?
我知道可以像下面的代码那样做一些事情,但我想知道在编译时缺少一个案例
void Bar()
{
// do something
}
void Baz()
{
// do something else
}
Dictionary<MyEnum, Action> Handlers = new Dictionary<MyEnum, Action>
{
[MyEnum.First] = Bar
[MyEnum.Second] = Baz
}
void Foo(MyEnum value)
{
if (! Handlers.TryGetValue(value, out Action action))
throw new ArgumentOutOfRangeException();
action();
}
UPD:我不想设置全局检查严重性
UPD2 我有大约 50 个开关(在其他枚举上),其中缺少大小写不是什么大问题,只有几个开关,其中缺少大小写应该是编译错误。可以将全局级别设置为错误并禁用错误 50 次,但是...有点难看
UPD3 不幸的是现在没有办法(22.05.2018)
如果我没理解错的话,您只需点击 Resharper 灯泡并配置它以添加缺失的案例和严重性(错误),
遗憾的是,现在(2018 年 5 月 22 日)没有办法通过简单的评论