| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 590 人关注过本帖
标题:求助,请高人指点!!!
只看楼主 加入收藏
yuanquan0104
Rank: 1
等 级:新手上路
帖 子:69
专家分:0
注 册:2005-7-8
收藏
 问题点数:0 回复次数:2 
求助,请高人指点!!!

using System;

class nbr { public double square ( ref double x) { x = x * x; return x; } } class TestApp { public static void Main() { nbr doit = new nbr();

double nbr1 = 3; double retVal = 0;

Console.WriteLine("Before square -> nbre1 = {0},retVal = {1}",nbr1 , retVal);

retVal = doit.square( ref nbr1 );

Console.WriteLine("After square -> nbre1 = {0},retVal = {1}",nbr1 , retVal); } } 以上小程序关于ref参数的,输出结果: Before square -> nbre1 = 3,retVal = 0 After square -> nbre1 = 9,retVal = 9 我想问一下高人,为什么输出结果的第二行是nbre1 = 9呢,请解释一下,在没有ref修饰,第二行结果是3和9。

搜索更多相关主题的帖子: 高人 
2005-08-03 10:00
cchuier
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2005-4-10
收藏
得分:0 
这是一个典型的值类型和引用类型的问题。本来想说说的,家人催我吃饭,
你再仔细想想,一定没有问题。

//小弟读过两年书,尘世中一个迷途小书童,华安! 哇,八个一块儿上吊,场面何其壮观!
2005-08-03 17:29
goodgoodstudy
Rank: 2
等 级:新手上路
威 望:3
帖 子:111
专家分:0
注 册:2005-4-6
收藏
得分:0 
第一个nbre1直接显示初始化的值,这没有什么疑问,第二个nbre1因为加了ref,变成了引用类型,它和值类型不同,引用类型是指向目标的地址,有点像C语言中的指针。而值类型只是值的拷贝,不会改变的。

2005-08-03 18:32
快速回复:求助,请高人指点!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017234 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved