微系统
博客园
首页
新随笔
联系
订阅
管理
随笔 - 12 文章 - 0 评论 - 45 trackbacks - 9
<
2008年1月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
北大青鸟-武汉洪山校区
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
最新评论
我的标签
留言簿
(6)
给我留言
查看留言
我的标签
WinForm数据绑定
(5)
如何读取二进制图片
(2)
事件
(2)
随笔分类
(18)
Ado.net(1)
AJAX.NET
ASP.NET2.0(3)
C#(9)
Window Form (smartClient)(5)
随笔档案
(10)
2008年6月 (5)
2007年9月 (5)
最新随笔
1. WinForm数据绑定--复杂绑定
2. WinForm数据绑定--简单绑定2
3. WinForm数据绑定-简单绑定1
4. WinForm数据绑定-理解数据绑定机制
5. WinForm数据绑定-实现IList接口
6. 如何读取二进制图片-Gridview中显示二进制图片 --2
7. 如何读取二进制图片-.ashx一般处理程序 --1
8. 讲讲C#中的事件和标准事件2--多点委托(多路)
9. 讲讲C#中的事件和标准事件1--委托
10. 关于out 和 ref 关键字的使用
最新评论
1. re: WinForm数据绑定--复杂绑定
BindingList这个类,我用您上面一样的方法也能实现,但是感觉都差不多.我想问以下具体有什么的不同? 现在一般都是做的和服务器的交互,以往的本地绑定数据源差不多都用不了啦.. 除开dataset...
--陈鹏
2. re: WinForm数据绑定--复杂绑定
嗯,现在看来是蛮简单滴啊!
--EAGLE☆
3. re: 讲讲C#中的事件和标准事件1--委托
啥时候能把水晶报表讲一讲?
--tigerzhang
4. re: WinForm数据绑定-实现IList接口
看的头昏脑胀,还是听你讲课来的快些。比较清楚
--tigerzhang
5. re: 如何读取二进制图片-Gridview中显示二进制图片 --2
呵呵 我也会做 只是知道思路 我一看就明白了!~! 了不起 蔡老师
你才是把这些人都搞定了 还没用你的10%的功力列
--张晓龙
阅读排行榜
1. 如何读取二进制图片-.ashx一般处理程序 --1(761)
2. 如何读取二进制图片-Gridview中显示二进制图片 --2(750)
3. 关于out 和 ref 关键字的使用(322)
4. 讲讲C#中的事件和标准事件1--委托(286)
5. 讲讲C#中的事件和标准事件2--多点委托(多路)(205)
评论排行榜
1. 讲讲C#中的事件和标准事件1--委托(11)
2. 如何读取二进制图片-Gridview中显示二进制图片 --2(9)
3. 关于out 和 ref 关键字的使用(8)
4. WinForm数据绑定--复杂绑定(6)
5. 讲讲C#中的事件和标准事件2--多点委托(多路)(6)
关于out 和 ref 关键字的使用
out 和 ref 关键字非常的相似都是以引用的方式来传递。不同的地方在与ref要求传递的变量必须进行初始化。看看下面例子中的表现:
1
class
OutRefTest
2
{
3
public
void
Main()
4
{
5
int
parm;
6
TestOut(
out
parm);
7
//
parm的值变成了10.
8
Console.WriteLine(
"
{0}
"
, parm);
9
10
//
parm2必须进行初始化
11
int
parm2
=
2
;
12
TestRef(
ref
parm2);
13
//
parm的值变成了10.
14
Console.WriteLine(
"
{0}
"
, parm);
15
Console.Read();
16
}
17
public
void
TestOut(
out
int
parm)
18
{
19
parm
=
10
//
必须赋值.
20
}
21
public
void
TestRef(
ref
int
parm)
22
{
23
parm
=
parm
*
10
;
//
必须赋值.
24
}
25
}
注意:
1.在使用out来传递变量的时候可以不必为变量parm初始化,而使用ref来传递变量的时候必须为变量parm2进行初始化工作。
2.如果在方法的参数列表中包含了out 或 ref关键字的话,就必须为相应的参数赋值。如方法TestOut 和 TestRef中表现的一样。
使用的时机:
如果你想让你写的方法可以一次返回多个值就需要使用out 或 ref来实现。
给个评价!谢谢!
posted on 2007-09-18 13:23
蔡鹏
阅读(322)
评论(8)
编辑
收藏
所属分类:
C#
FeedBack:
#1楼
2007-09-20 00:34
抬头眯眼阳光
已经阅读!
回复
引用
查看
#2楼
2007-09-20 11:57
114陈思源 [未注册用户]
报到,板凳!
回复
引用
#3楼
2008-01-22 17:19
光光 [未注册用户]
我把代码试了下,显示的2个值都是10,不是应该一个是10,一个是20吗?还有个问题,您说“你想让你写的方法可以一次返回多个值就需要使用out 或 ref来实现。”,怎么返回多个值啊?一个方法能返回>1个值?请老师说下。
回复
引用
#4楼
[
楼主
] 2008-01-22 19:56
蔡鹏
对是20.可以在多个参数上使用out呀.
回复
引用
查看
#5楼
2008-06-21 20:12
126陈刚 [未注册用户]
out是把一个参数传到方法里面。然后经过方法的处理再把这个参数返回?
不知道这样理解对不对。。。
回复
引用
#6楼
2008-06-21 21:49
朱建华 [未注册用户]
我把代码也试了一下的,开始是输入出的两个10,那是因为:
TestRef(ref parm2);
Console.WriteLine("{0}", parm);
这里传入的值并不是parm2,而是parm,而parm并没有赋初始值,所以输出的还是和上面的结果一样是10.如果传入的参数改为parm2的话,则输出的就会为20了.
回复
引用
#7楼
2008-06-21 23:11
29班王国洪 [未注册用户]
ref 是不是跟不使用任何关键字的效果一样?
回复
引用
#8楼
2008-07-11 20:48
Army_C [未注册用户]
还差一个params参数的方式吧,也可以讲讲吗?
第一次报道!
回复
引用
社区
新闻
新用户注册
刷新评论列表
标题
姓名
主页
Email
(只有博主才能看到)
验证码
*
看不清,换一张
[
登录
][
注册
]
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
使用高级评论
新用户注册
返回页首
恢复上次提交
[使用Ctrl+Enter键可以直接提交]
该文被作者在 2007-09-19 21:09 编辑过
所属分类的其他文章:
·
WinForm数据绑定--复杂绑定
·
WinForm数据绑定--简单绑定2
·
WinForm数据绑定-简单绑定1
·
WinForm数据绑定-理解数据绑定机制
·
WinForm数据绑定-实现IList接口
·
讲讲C#中的事件和标准事件2--多点委托(多路)
·
讲讲C#中的事件和标准事件1--委托
·
关于out 和 ref 关键字的使用
最新IT新闻:
·
第一财经周刊:当前互联网世界正处无秩序时代
·
Visual Studio 2008 SDK 1.1 发布
·
死敌VMware变身微软认证计划新成员
·
英特尔雅虎开发网络计算机频道
·
Windows Live视频邮件9月9日开始测试
博客园新闻频道
博客园首页
社区