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