我主要是自学 C# 代码,我在大学里上了一门没有多大帮助的类(class)……当然是学会了如何跟书学。所以我在这里和那里创建了工具,通过在线示例学习。 Stackoverflow 是我最喜欢的网站,通常社区会提供帮助...
无论如何,我的问题是,我正在创建一个 WPF 程序,该程序对小数位数进行多次计算,我一直在重复使用相同的代码计算,它工作正常,但我知道有一个用少得多的行来做这件事的更简单的方法。我似乎缺少这些知识。
这是我将如何做事的示例。
int int1 = 4;
int int2 = 2;
int int3 = 6;
int int4 = 8;
int calc1 = 0;
int calc2 = 0;
int calc3 = 0;
calc = int1 * int4
calc2 = int1 * int2
calc3 = int3 * int3
if (calc >= calc3)
{
do something;
}
else
{
calc = 33
}
if (calc2 >= calc3)
{
do something;
}
else
{
calc2 = 33
}
if (calc3 >= calc2)
{
do something;
}
else
{
calc3 = 33
}
if (calc3 >= calc)
{
do something;
}
else
{
calc2 = 33
}
我希望已经足够清楚了。我可以重复代码,但我只是不确定如何更好地使用 C#,我知道它内置了减少重复代码的方法,只是不知道如何找到它们。
感谢任何帮助或示例。
最佳答案
我想到的最简单的解决方案是将它变成一个方法。 (我将保留 access modifier for the function up to you ...这取决于您将在哪里重用此代码)
int CustomCompare(int leftHandSide, int rightHandSide)
{
int calc;
if (leftHandSide >= rightHandside)
{
do something;
}
else
{
leftHandSide= 33
}
return leftHandSide
}
你只需传入你的变量:
calc = CustomCompare(calc, calc3)
如果需要,您甚至可以将 do something 部分更改为您传入的自定义操作。看看Action in MSDN
int CustomCompare(int leftHandSide, int rightHandSide, Action doSomething)
{
int calc;
if (leftHandSide >= rightHandside)
{
doSomething();
}
else
{
leftHandSide= 33
}
return leftHandSide
}
...
calc = CustomCompare(calc, calc3,
()=>{do some stuff that will be executed inside the method});
And Func can allow you to return a value from that doSomething action
关于C#如何减少重复代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10741888/