积极答复者
xmldocument的问题

问题
-
看到如下代码
private static XmlAttribute CreateNodeAttribute(XmlDocument doc, String name, String value)
{
XmlAttribute attribute = doc.CreateAttribute(name, null);
attribute.Value = value;
return attribute;
}
我想问的是,这里的doc是怎么传递?按值还是按引用?另外,我再msdn中,怎么来查找这个类是按照值传递还是按引用传递?- 已移动 Sheng Jiang 蒋晟Moderator 2009年9月10日 18:05 XML问题 (发件人:ASP.NET 与 AJAX)
- 已移动 Sheng Jiang 蒋晟Moderator 2009年9月10日 18:05 XML问题 (发件人:XML 与 Web Services 讨论区)
- 已移动 Raymond TangModerator 2009年9月11日 0:58 C# Related (发件人:XML 与 Web Services 讨论区)
- 已移动 Sheng Jiang 蒋晟Moderator 2009年9月11日 1:53 .Net类库问题 (发件人:Visual C#)
答案
-
你好 doc是按引用传递的
所有类都是按引用传递的
对于值类型 如结构、枚举等 他们最终都是继承自ValueType而ValueType继承自Object
值类型按照值传递,如果想按照引用的方式可以 在参数前面添加 out或者ref关键字
class RefExample
{
static void Method(ref int i)
{
i = 44;
}
static void Main()
{
int val = 0;
Method(ref val);
// val is now 44
}
附:数据类型分隔为值类型和引用类型。值类型要么是堆栈分配的,要么是在结构中以内联方式分配的。引用类型是堆分配的。引用类型和值类型都是从最终的基类 Object 派生出来的。当值类型需要充当对象时,就在堆上分配一个包装(该包装能使值类型看上去像引用对象一样),并且将该值类型的值复制给它。该包装被加上标记,以便系统知道它包含一个值类型。这个进程称为装箱,其反向进程称为取消装箱。装箱和取消装箱能够使任何类型像对象一样进行处理。
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond- 已标记为答案 fangzhijie 2009年9月10日 9:05
-
这里的doc是怎么传递?XmlDocument d = new XmlDocument();d.LoadXml("<root/>");XmlAttribute attr = CreateNodeAttribute(d,"name","test");类(class )类型属于引用类型值类型和引用类型的讲解http://msdn.microsoft.com/zh-cn/library/3ewxz6et.aspxhttp://msdn.microsoft.com/zh-cn/library/t63sy5hs.aspx
【孟子E章】- 已标记为答案 fangzhijie 2009年9月10日 9:05
全部回复
-
你好 doc是按引用传递的
所有类都是按引用传递的
对于值类型 如结构、枚举等 他们最终都是继承自ValueType而ValueType继承自Object
值类型按照值传递,如果想按照引用的方式可以 在参数前面添加 out或者ref关键字
class RefExample
{
static void Method(ref int i)
{
i = 44;
}
static void Main()
{
int val = 0;
Method(ref val);
// val is now 44
}
附:数据类型分隔为值类型和引用类型。值类型要么是堆栈分配的,要么是在结构中以内联方式分配的。引用类型是堆分配的。引用类型和值类型都是从最终的基类 Object 派生出来的。当值类型需要充当对象时,就在堆上分配一个包装(该包装能使值类型看上去像引用对象一样),并且将该值类型的值复制给它。该包装被加上标记,以便系统知道它包含一个值类型。这个进程称为装箱,其反向进程称为取消装箱。装箱和取消装箱能够使任何类型像对象一样进行处理。
Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond- 已标记为答案 fangzhijie 2009年9月10日 9:05
-
这里的doc是怎么传递?XmlDocument d = new XmlDocument();d.LoadXml("<root/>");XmlAttribute attr = CreateNodeAttribute(d,"name","test");类(class )类型属于引用类型值类型和引用类型的讲解http://msdn.microsoft.com/zh-cn/library/3ewxz6et.aspxhttp://msdn.microsoft.com/zh-cn/library/t63sy5hs.aspx
【孟子E章】- 已标记为答案 fangzhijie 2009年9月10日 9:05