我有一些代码可以像这样处理颜色结构
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/