c# - 减少重复代码

标签 c# readability

我有一些代码可以像这样处理颜色结构

public void ChangeColor()
{
    thisColor.R = thisColor.R + 5;
}

现在我需要制作一个方法,根据传递的内容更改不同的变量。这是代码现在的样子。

public void ChangeColor(int RGBValue)
{
    switch(RGBValue)
    {
        case 1:
            thisColor.R = thisColor.R + 5;
            break;
        case 2:
            thiscolor.B = thisColor.B + 5;
            break;
    }
}

现在,这是我通常永远不会质疑的事情,我只是围绕它抛出一个#region 语句并结束它,但这只是我所拥有的一个例子,实际功能很长。

我希望它看起来像这样:

public void ChangeColor(int RGBValue)
{
    thiscolor.RGBValue = thiscolor.RGBValue;
}

所以本质上,该值将引用正在使用的变量。有这个名字吗?这就是 Reflection 的用途吗?或者类似的东西...有没有办法做到这一点?

最佳答案

我不能 100% 确定这是否是您想要的。但是对于给定的示例,听起来这可能就是您所追求的。

您可以使用 ref 关键字:

public void ChangeColor(ref int color)
{
    color += 5;
}

void SomeMethod()
{
    ChangeColor(ref thisColor.R); //Change the red value
    ChangeColor(ref thisColor.B); //Change the blue value
}

关于c# - 减少重复代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2527711/

相关文章:

perl - Perl 条件语句中 ‘if’ 和 ‘unless’ 的用法

php - 如何使 SQL 查询在 PHP 中更具可读性?

c# - 无法在 Unity 中继承 ConfigurableJoint

c# - Azure DevOps API 错误 : RuleValidationException: The field 'State' contains the value 'Active' that is not in the list of supported values C#

c# - 我希望数据库表中具有 NULL 的列将其设为空白

java - 动态向类添加属性

php - 填充 PHP 数组 : check for index first?

java - 在 Java 中获取列表内的字段详细信息,而无需大的 if else 条件

python - 如何读取使用 "from <module> import *"的代码?

c# - LINQ 查询未以字符串形式返回所需结果。为什么?