我有一个修改对象的委托.我从调用方法传递一个对象到委托,但调用方法不会获取这些更改.如果我将a List作为对象传递,则相同的代码可以工作.
我认为所有对象都是通过引用传递的,因此任何修改都会反映在调用方法中.那是对的吗?
我可以修改我的代码以将ref对象传递给委托.但我想知道为什么这是必要的.或者是吗?
public class Binder
{
protected delegate int MyBinder<T>(object reader, T myObject);
public void BindIt<T>(object reader, T myObject)
{
//m_binders is a hashtable of binder objects
MyBinder<T> binder = m_binders["test"] as MyBinder<T>;
int i = binder(reader, myObject);
}
}
public class MyObjectBinder
{
public MyObjectBinder()
{
m_delegates["test"] = new MyBinder<MyObject>(BindMyObject);
}
private int BindMyObject(object reader, MyObject obj)
{
obj = new MyObject
{
//update properties
};
return 1;
}
}
///calling method in some …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用其构造函数创建对象的副本,但是当我修改副本的某些内容时,原始对象也会被修改.如果你能帮助我,我将不胜感激,这是我的代码:
public class XMLStructure
{
public XMLStructure(XMLStructure xmlCopy )
{
this.Action = xmlCopy.Action;
this.Name = xmlCopy.Name;
}
public String Name { get; set; }
public ActionXML Action { get; set; }
}
Run Code Online (Sandbox Code Playgroud)