我有一個使用另一個類的類。爲什麼參數沒有更新?
第一類有這樣的方法:
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
中更改_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
屬性中的更新值。
我想知道爲什麼在第一個解決方案中枚舉沒有更新,因爲如果可能的話,我想避免需要在一個類中包裝枚舉。
是您的clickButton連接到按鈕?它似乎並不是 – Jonesopolis
以及點擊按鈕它是爲了顯示_MySelection被更新,這是一個Class2的類變量,但它似乎不是與構造函數的參數相同的變量,儘管已被賦值在構造函數上。 –