如何彻底重构:
private MyType a;
private MYType b;
private MyType c;
...
public void MyMT(MyEnum myEnum)
{
switch(myEnum)
{
case myEnum.a:
a=Method(a);
break;
case myEnum.b:
b=Method(b);
break;
case myEnum.c:
c=Method(c);
break;
}
}
我想到了这样的事情:
public void MyMT(MyEnum myEnum)
{
MyType _myType;
switch(myEnum)
{
case myEnum.a:
_myType =a;
break;
case myEnum.b:
_myType =b;
break;
case myEnum.c:
_myType =c;
break;
}
_myType = Method(_myType);
}
_myType
是一个对象,我认为
_myType=a;
会复制" a"将地址导入myType,这样当我稍后修改_myType值时,它也会修改" a"值。 点击此行时_myType获取正确的值:
_myType = Method(_myType);
但是a(或b或c)没有像我想象的那样更新。
Aren的引用应该以这种方式工作吗?
编辑: 方法实际上创建了一个SQL连接,调用:
Method(MyType _myType)
{
new MySqlConnection(_myType.ToString());
}
答案 0 :(得分:2)
当您指定_myType=a
时,通过a
引用_myType
。然后,当您执行_myType = Method(_myType)
时,只需在_myType
中存储新参考。如果你想改变对象的属性,你的Method
应该直接修改它。