【发布时间】:2019-01-27 17:06:36
【问题描述】:
假设我有一个方法,其中有多个语句将在调用除一个之外的方法时执行。 (根据传递给方法的参数决定不执行的语句)。
我怎样才能实现上述场景?
到目前为止我所做的事情。
我有以下方法。
enum Abc
{
A = 0,
B = 1,
C = 2,
D = 3,
E = 4,
}
int GetSum(Abc abc)
{
int sum = 0;
if(abc != Abc.A)
{
sum += 23;
}
if(abc != Abc.B)
{
sum += 68;
}
if(abc != Abc.C)
{
sum += 96;
}
if(abc != Abc.D)
{
sum += 57;
}
if(abc != Abc.E)
{
sum += 63;
}
return sum;
}
在向sum 添加值之前,我正在根据abc 的值检查是否必须添加。
基本上,我希望如果abc 的值为Abc.A,则执行除sum += 23; 之外的所有语句。
在我的代码中,if 条件太多。有没有办法用更少的 if 语句或任何其他方式(更好)来做事?
注意:-这里sum += //something只是语句之一,语句不一定是加法(它可以是任何东西)。
【问题讨论】:
-
这感觉像是一个 XY 问题 - meta.stackexchange.com/questions/66377/what-is-the-xy-problem。你的代码想要达到什么目的?
-
此外,这似乎很适合codereview.stackexchange.com。除此之外,您可以为此使用
switch-关键字。 -
您的示例与您的实际代码相距甚远吗?还是真的是一些相对简单的计算而没有进一步的副作用?
标签: c# if-statement conditional-statements