日期:2014-05-18  浏览次数:20732 次

一个传入对象的问题
.......
                //--设置节点的信息,并且节点下移
                void   SetInnerXml(XmlNode   xn,   string   sXmlStr)
                {
                        xn.InnerXml   =   sXmlStr;
                        xn   =   xn.NextSibling;
                }

........
调用XmlNode   xn=XmlDocument1.FirstChild;
    SetInnerXml(xn, "value ");
竟然发现xn节点没有指向他的下一个兄弟节点,怎么回事???

------解决方案--------------------
up
------解决方案--------------------
帮顶`~
------解决方案--------------------
友情帮顶。。。
------解决方案--------------------
void SetInnerXml(XmlNode xn, string sXmlStr)
{
xn.InnerXml = sXmlStr;
xn = xn.NextSibling;
^^^^^^^^^^^^^这里你重新对xn付值,这样你函数的调用方时没有改变到的
}

// 调用前xn是对象1
SetInnerXml(xn, sXmlStr); // 在函数里面,sn被改了
// 调用后xn还是对象1,因为函数定义没有用引用
------解决方案--------------------

------解决方案--------------------
void SetInnerXml(XmlNode xn, string sXmlStr)
{
xn.InnerXml = sXmlStr;
XmlNode next = xn.NextSibling;
xn.ParentNode.RemoveChild(next);
xn.ParentNode.InsertBefore(next,xn);
}
------解决方案--------------------
....................................................