[英]How can modify the same variable when I pass it as parameter on a method?
好吧,我必須上課,ClassA是主要課程,ClassB是輔助課程。 代碼是這樣的。
class ClassA
{
private void myMthod()
{
MyClassB myClassB = new ClasB();
CustomObject myCustomObject = new CustomObject();
myClassB.MyMethodOnClassB(myCustomObject);
if(miCustomObject == null)
{
//code in case of null
}
else
{
//code in case of not null
}
}
}
class ClassB
{
CustomObject _myCustomObjectOnB;
public ClassB(CustomObject paramCustomObject)
{
_myCustomObjectOnB = paramCustomObject;
}
public MyMethodOnClassB()
{
_myCustomObject = null;
}
}
好吧,這個想法是,當我將ClassB上的變量_myCustomObject設置為null時,ClassA中的myCustomObject將為null。 但是我知道在這種情況下代碼無法正常工作,因為我在ClassB中修改了與classA上變量引用不同的引用。
這個想法是修改相同的引用,因為我想在使用MVVM模式的應用程序中創建一個對話框,並且由於該對話框,我想使用CustomObject作為通信變量。
非常感謝。
嘗試這個:
class ClassA
{
private void myMthod()
{
MyClassB myClassB = new ClasB();
CustomObject myCustomObject = new CustomObject();
myClassB.MyMethodOnClassB(ref myCustomObject);
if(miCustomObject == null)
{
//code in case of null
}
else
{
//code in case of not null
}
}
}
class ClassB
{
CustomObject _myCustomObjectOnB;
public ClassB(CustomObject paramCustomObject)
{
_myCustomObjectOnB = paramCustomObject;
}
public MyMethodOnClassB(ref CustomObject customObject)
{
_myCustomObject = customObject = null;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.