我有一个使用另一个类的类。
第一类有这个方法:
public void myMethod()
{
//Parameters are an enumeration.
// Really is a exchange variable between this class
//and the other class.
Paramters myParameter = Parameters.Option1;
MyClass2 myOtherClass = new MyClass2(myParameter);
}
第二类:
public enum Parameters { Option1, Option2, Option3 }
MyClass2
{
Parameters _myParameters;
Public MyClass2(Parameters paramParameters)
{
_myParameters = paramParameters;
}
private void clickButton()
{
_myParameters = Parameters.Option2;
this.Dispose();
}
}
我什么是创建一个对话框,它是Parameters
一个枚举,用作主窗口和对话框之间的交换,以通知对话框中的选择。
但是,当在clickButton
I 中更改 的值时_myParameters
,在构造函数中作为参数传递的对象中不会更改MyClass2
。
如果不是使用枚举作为交换变量,而是创建一个具有枚举的类,那么我可以获得选择。交换类是这样的:
class MyExchangeClass
{
Parameters myOption;
}
那么代码将是:
public void myMethod()
{
//Parameters are an enumeration.
// Really is a exchange variable between this class
//and the other class.
MyExchangeClass mySelection= new MyExchangeClass();
MyClass2 myOtherClass = new MyClass2(mySelection);
}
第二类:
public MyExchangeClass
{
Parameters enum MySelection { Option1, Option2, Option3 }
}
class MyClass2
{
MyExchangeClass _mySelection;
Public MyClass2(MyExchangeClassparamParameters)
{
_mySelection= paramParameters;
}
private void clickButton()
{
_mySelection.MySelection = Parameters.Option2;
this.Dispose();
}
}
这样,Class1
主窗口 的 属性中的更新值class MyExchangeClass
。
我想知道为什么在第一个解决方案中枚举没有更新,因为如果可能的话,我想避免将枚举包装在一个类中。