黑马程序员-通过“值”和通过“引用”传递引用参数
2013-03-13 10:10
141 查看
---------------------- Windows
Phone 7手机开发、.Net培训、期待与您交流!
----------------------
直接上代码:
private void BtnResult_Click(object sender, EventArgs e)//Click事件
{
int[] sz = { 1, 2, 3, 4 };//
int[] szCopy = sz;
string output = "";//output
DoubleArray(sz);
for (int i = 0; i < sz.Length; i++)
{
output += " " + sz[i];
}
lab1.Text = output;
if (sz == szCopy)
{
lab1.Text += "\r" + "sz没有发生改变一样";
}
else { lab1.Text += "\r" + "不一样了,sz发生了改变"; }
}
void DoubleArray(int[] a)//不用ref
{
for (int i = 0; i < a.Length; i++)
{
a[i] *= 2;
}
a = new int[] { 11, 12, 13, 14 };
}
void DoubleArray(ref int[] a)//使用ref
{
for (int i = 0; i < a.Length; i++)
{
a[i] *= 2;
}
a = new int[] { 11, 12, 13, 14 };
}
区别有和没有ref 的区别:大多数情况下, 总是期望防止改变调用者的引用,如果确实需要改变,则用过ref 来进行引用传递引用参数。
Phone 7手机开发、.Net培训、期待与您交流!
----------------------
直接上代码:
private void BtnResult_Click(object sender, EventArgs e)//Click事件
{
int[] sz = { 1, 2, 3, 4 };//
int[] szCopy = sz;
string output = "";//output
DoubleArray(sz);
for (int i = 0; i < sz.Length; i++)
{
output += " " + sz[i];
}
lab1.Text = output;
if (sz == szCopy)
{
lab1.Text += "\r" + "sz没有发生改变一样";
}
else { lab1.Text += "\r" + "不一样了,sz发生了改变"; }
}
void DoubleArray(int[] a)//不用ref
{
for (int i = 0; i < a.Length; i++)
{
a[i] *= 2;
}
a = new int[] { 11, 12, 13, 14 };
}
void DoubleArray(ref int[] a)//使用ref
{
for (int i = 0; i < a.Length; i++)
{
a[i] *= 2;
}
a = new int[] { 11, 12, 13, 14 };
}
区别有和没有ref 的区别:大多数情况下, 总是期望防止改变调用者的引用,如果确实需要改变,则用过ref 来进行引用传递引用参数。
相关文章推荐
- 基础知识-通过引用来传递函数参数(直接访问函数参数)
- 通过引用向方法传递参数(使用out和ref参数)
- 在PowerShell中通过引用传递参数
- 通过js引用地址传递参数
- C#中通过引用来传递参数?有几种?区别?例?(传入参数A,并返回操作后的A)?
- 类的方法(通过引用来传递参数)
- 二十二:通过引用向方法传递参数(使用out和ref参数)
- [转]c#中通过值和引用传递参数
- 通过值传递参数和通过引用传递参数之间的差异 (Visual Basic)
- 函数的参数传递是通过值还是引用
- 10.如何通过值或引用传递参数
- c#中通过值和引用传递参数
- c#中通过值和引用传递参数(总结)
- PHP通过引用传递参数用法分析
- 黑马程序员-引用类型传递参数的特殊情况(string)
- c#中通过值和引用传递参数
- c#中通过值和引用传递参数
- c#中通过值和引用传递参数(downmoon)
- 通过给事件处理程序传递this参数,获取事件源对象的引用。单机提交按钮时在信息框中显示用户输入的字符。
- PHP通过引用传递参数