优化if -else语句问[关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了优化if -else语句问[关闭]相关的知识,希望对你有一定的参考价值。
我有if-else语句,我想更优化它。有没有办法更优化它
if(entity[attributeName] != null)
{
if (entity.FormattedValues.Contains(attributeName) && entity[attributeName].GetType() != typeof(EntityReference))
{
return entity.FormattedValues[attributeName];
}
else
{
return GetDisplayObjectFromRawValue(entity[attributeName]);
}
}
else
{
if (entity.FormattedValues.Contains(attributeName))
{
return entity.FormattedValues[attributeName];
}
else
{
return GetDisplayObjectFromRawValue(entity[attributeName]);
}
}
答案
如果我理解你的意思正确,你的代码可以像这样重写:
if(entity[attributeName] != null)
{
return entity.FormattedValues.Contains(attributeName) && entity[attributeName].GetType() != typeof(EntityReference)
? entity.FormattedValues[attributeName]
: GetDisplayObjectFromRawValue(entity[attributeName]);
}
return entity.FormattedValues.Contains(attributeName)
? entity.FormattedValues[attributeName]
: GetDisplayObjectFromRawValue(entity[attributeName]);
P / S:这种方式与之无关:它使代码运行得更快,或者在运行时节省内存或类似的东西。只是为了可读性。
另一答案
如果只是代码长度,你可以像这样重写它:
if (entity.FormattedValues.Contains(attributeName)
&& (entity[attributeName] == null || entity[attributeName].GetType() != typeof(EntityReference)))
{
return entity.FormattedValues[attributeName];
}
else
{
return GetDisplayObjectFromRawValue(entity[attributeName]);
}
或表达为三元声明:
return entity.FormattedValues.Contains(attributeName)
&& (entity[attributeName] == null || entity[attributeName].GetType() != typeof(EntityReference))
? entity.FormattedValues[attributeName]
: GetDisplayObjectFromRawValue(entity[attributeName]);
我在示例here中将原始代码简化为布尔值:
v1
(entity [attributeName]!= null),v2
(entity.FormattedValues.Contains(attributeName))v3
(entity [attributeName] .GetType()!= typeof(EntityReference))
请注意,您通常应该以一种简洁易读的方式编写代码。
以上是关于优化if -else语句问[关闭]的主要内容,如果未能解决你的问题,请参考以下文章