【发布时间】:2017-10-29 11:32:21
【问题描述】:
我有一个一般性问题。我有2个案例(方法Test1和Test2,我不知道最好的方法是什么(性能,忽略大小写,所有方面):
public void Test1(object transcodingStatus)
{
string _transcodingStatus = transcodingStatus as string;
if (!string.IsNullOrEmpty(_transcodingStatus))
{
if (_transcodingStatus.ToUpper() == AWSTranscoderStatusBindingModel.COMPLETED.ToString())
{
//DO LOGIC
}
}
}
public void Test2(object transcodingStatus)
{
if (transcodingStatus != null)
{
AWSTranscoderStatusBindingModel enumVale = AWSTranscoderStatusBindingModel.COMPLETED;
if (Enum.TryParse(transcodingStatus.ToString(), false, out enumVale))
{
if (enumVale == AWSTranscoderStatusBindingModel.COMPLETED)
{
//DO LOGIC
}
}
}
}
感谢所有帮助者:)
【问题讨论】:
-
我很好奇为什么参数的类型是
object。为什么不是AWSTranscoderStatusBindingModel?或string? -
无疑是第二个。 A)因为第一个不区分大小写的比较错误。 B)因为当存在现有方法时,几乎总是更好地使用它。表现?我猜你这里没有 MEASURED 问题
-
如果你可以完全避免从字符串中解析枚举,它会更快。序列化器通常能够将枚举序列化为整数。
标签: c#