簡體   English   中英

當我將其作為方法的參數傳遞時,如何修改相同的變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM