Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当我将同一变量作为参数传递给方法时,如何修改它?_C# - Fatal编程技术网

C# 当我将同一变量作为参数传递给方法时,如何修改它?

C# 当我将同一变量作为参数传递给方法时,如何修改它?,c#,C#,嗯,我得上课,A班是主班,B班是副班。代码是这样的 class ClassA { private void myMthod() { MyClassB myClassB = new ClasB(); CustomObject myCustomObject = new CustomObject(); myClassB.MyMethodOnClassB(myCustomObject); if(miCustomObject

嗯,我得上课,A班是主班,B班是副班。代码是这样的

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;
    }
}
好的,我的想法是,当我设置为null时,类B上的变量_myCustomObject,在类A中,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;
    }
}

myClassB.MyMethodOnClassB
不接受变量!?您正在寻找ref关键字。为什么使用ref和reference类型?@EhsanSajjad请参考此