C#如何减少重复代码?

标签 c#

我主要是自学 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/

相关文章:

c# - "On-the-run"调试/监控

c# - zip 文件中的内容

c# - 将正确的类型参数传递给 MethodInfo GetMethod

c# - 每路由身份验证导致 RouteExecutionEarlyExitException

c# - 每次使用相同的连接字符串创建多个 MongoClient 实例是否安全?

c# - 如何在反序列化期间通过构造函数参数将记录器注入(inject)到对象中

c# - LINQ:如何返回所有父元素的所有子元素

c# - 灯光 USB OpenDMX FTD2XX DMXking

c# - 更改 mschart 轴上的日期时间格式

c# - 为什么 Enumerable.Cast<> 不使用我的转换运算符?