我在很大程度上自学了C#代码,我在大学里上了一堂课并没有多大帮助......确实学会了如何学习如何学习.所以我在这里和那里创建了工具,在线学习.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
}
Run Code Online (Sandbox Code Playgroud)
我希望这很清楚..我可以重复代码,但我只是不确定如何更好地使用C#,我知道它已经内置了减少重复代码的方法,只是不知道如何找到它们.
任何帮助或示例表示赞赏.
突然出现给我的最简单的解决方案是将其变成一种方法.(我将把函数的访问修饰符留给你 ...这取决于你将重用这段代码的位置)
int CustomCompare(int leftHandSide, int rightHandSide)
{
int calc;
if (leftHandSide >= rightHandside)
{
do something;
}
else
{
leftHandSide= 33
}
return leftHandSide
}
Run Code Online (Sandbox Code Playgroud)
你只需传入你的变量:
calc = CustomCompare(calc, calc3)
Run Code Online (Sandbox Code Playgroud)
如果需要,您甚至可以将do something部分更改为您传入的自定义操作.看看MSDN中的Action
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});
Run Code Online (Sandbox Code Playgroud)
并且Func可以允许您从该doSomething操作返回一个值