相关疑难解决方法(0)

在C#中通过引用传递对象和对象列表

我有一个修改对象的委托.我从调用方法传递一个对象到委托,但调用方法不会获取这些更改.如果我将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)

c# pass-by-reference

40
推荐指数
1
解决办法
6万
查看次数

如何在c#中使用其构造函数创建对象的副本?

我正在尝试使用其构造函数创建对象的副本,但是当我修改副本的某些内容时,原始对象也会被修改.如果你能帮助我,我将不胜感激,这是我的代码:

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)

.net c#

0
推荐指数
1
解决办法
100
查看次数

标签 统计

c# ×2

.net ×1

pass-by-reference ×1