c# out关键字 vb_c# 关键字:ref 和 out

.NET Ref

Out

关键字

对于值类型。

如果不使用

ref /out

则传递的只是这些值的

COPY,

使用了

Ref

Out

的效果就几乎和

C

中使用了指针变量一样。

(

传递的就是原值

),

它能够让你直接对原数进行操作,而不是对那个原数的

Copy

进行操作

对于引用类型

:

如果不使用

ref /out,

因为传递的是引用类型的地址值

,

则将传递引用类型的地

址值的一个

COPY(--

针对地址值的角度还是值类型传递

),

实际上就是新开一个

不同的内存变量来存储这个地址值的拷贝

而使用

ref /out,

传递的还是引用类型的地址值

,

但是传递的就不是一个新变量

来存拷贝

,

而是就是传原来的那个应用类型的地址值

/

注意

list

的处理

不用关心

,

异步

,

代理委托这些

;

以和使用同步方法一样理解;只是正好遇到了这个例

子所以拿来用;

public

delegate

string

DelegateWithParameters(string

param1,

int

param2,

ArrayList list);

private void CallFooWithParameters()

{

// create the paramets to pass to the function

string strParam1 = "Param1";

int intValue = 100;

ArrayList list = new ArrayList();

list.Add("Item1");

// create the delegate

DelegateWithParameters delFoo =

new DelegateWithParameters(FooWithParameters);

//

call

FooWithParameters(string

param1,int

param2,

ArrayList

list)

//

实际上

list

的引用地址作为值类型传递

,

进入方法时

,

用一个新内存变量

存储这个引用的地址

//

所以在函数内部多该新内存变量地址修改

.

只是让该新内存变量指向了另

外一个

list

IAsyncResult tag =

delFoo.BeginInvoke(strParam1, intValue, list, null, null);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值