我刚开始学习C#,在C++中的指针变量好像已经不能在使用了。现在请教一个问题,就是在C#中,如何将一个变量的地址做为参数传送到方法中。而且C#中的输出变量和输入变量是什么意思?还请学习C#的朋友给予指导,谢谢。
解决方案 »
- winform,如何把汉字转为utf8的字符
- 辣手问题:字符串的显示
- 在使用DataGridView控件时,大家遇到过这样的情况吗(见帖图)
- 求经典的企业网站,ASP.NET的最好
- 当前form里做一个button,button click后就能最大化该form,click事件怎么写
- 如何始终读取数据库,如果哪个字段内容有变化,则给出MSN样的提示?
- 在winCE 在怎么注册COM组件
- 有没有研究Rainbow Portal的,来交流一下
- 难道这是DataGrid类(Web)的Bug???
- 智能wifi如何通过C#实现编程
- 关于C#方程绘图 求个解决方案
- 帮忙怎么解析通过HTTP协议发送过来的字符串,用哪个类可以做??
要将值类型的地址作为参数传递,可以使用这样的语法:
ref 关键字使参数按引用传递。其效果是,当控制权传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。若要使用 ref 参数,则方法定义和调用方法都必须显式使用 ref 关键字。例如:class RefExample
{
static void Method(ref int i)
{
i = 44;
}
static void Main()
{
int val = 0;
Method(ref val);
//调用方法后val的值改变为44
}
}
传递到 ref 参数的参数必须最先初始化。这与 out 不同,out 的参数在传递之前不需要显式初始化out 关键字会导致参数通过引用来传递。这与 ref 关键字类似,不同之处在于 ref 要求变量必须在传递之前进行初始化。若要使用 out 参数,方法定义和调用方法都必须显式使用 out 关键字。例如:class OutExample
{
static void Method(out int i)
{
i = 44;
}
static void Main()
{
int value;
Method(out value);
// value is now 44
}
}
尽管作为 out 参数传递的变量不需要在传递之前进行初始化,但需要调用方法以便在方法返回之前赋值。
使用关键字:ref 和 out前者需要初始化:int temp = 10;
static void example(ref int i)
{
\\code
}
example(temp);后者不需要初始化:int temp;
static void example(out int i)
{
\\code
}
example(temp);