我在JetBrains的骑士工作,并已跑进,保持出现一个警告。考虑这种情况:
public enum ValueEnum {
A,B,C
}
public class Value {
public ValueEnum ValueEnum { get; set; }
}
public class ValueWrapper {
public IEnumerable<Value> Values { get; set; }
}
我试图获得该列表中的第一个枚举,并将其转换成字符串。此代码工作正常:
var format = string.Empty;
if (alert.Values != null && alert.Values.Count > 0)
{
var template = alert.Values.First();
format = nameof(template.ValueEnum);
}
但是我得到分配的任何执行路径警告没有使用的价值。将所述上面的片段为以下:
var format2 = string.Empty;
if (alert.Values != null)
{
foreach (var template in alert.Values)
{
format2 = nameof(template.ValueEnum);
break;
}
}
产生一个局部变量“模板”只是用来捕捉它的名字。
有没有写这个(使用LINQ或诸如此类的东西)是在用C#最佳做法更清洁的方式吗?
假设你真正想要的枚举的字符串值,而不是文本字符串“ValueEnum”,请尝试:
alert.Values?.FirstOrDefault()?.ValueEnum.ToString() ?? string.Empty;
(您的两个方法会工作,有你改变nameof(template.ValueEnum)
到template.ValueEnum.ToString()
,但他们是不必要的详细)。