记录的都是每天看到的一些点滴的知识,可能会很零散,也可能会很基础。勤能补拙。有不对的地方请指点。
占位符
说是占位符,其实算是一种输出时格式的规范化。可以直接用于输出或者较长的string文本中,便于规范格式。
double a = 3.1415926;
Consolo.WriteLine("XXXX{0:00}",a); //输出3.14
xxxx是占位符 {0:00}是占位符格式的表示--保留两位小数。
out参数
可以将参数代入到方法中,并修改实参的值。
比如有一个方法给用于赋值。
public void test(out string name)
{
name ="abc";
}
然后申明一个参数并赋予初值
string n1=“cde";
调用方法,将参数以out参数的形式传入
test(out n1);
Response.Write(n1);
输出结果为 abc
注意out参数实际上是从函数内部把值带出来,就是说当上面代码的n1即使不赋初值,也是没有错的。out参数可以理解成一种用参数来传递返回值的方式。
在后期修改函数的时候,需要有返回值,但是调用函数的地方太多的时候,用out参数是个不错的选择。
ref参数
有一个函数
public void test(ref string name)
{
name="cdf";
}
申明一个变量
string n1 ="abc"
调用函数
test(ref n1);
Consolo.WriteLine(n1);
输出结果为cdf
讲参数用ref参数的形式传入就相当于把自己传了进去。就像你把身份证复印件写上”这复印件,无效“借给人家,别人只能用来证明他认识你,他对复印件做任何操作都不会影响到你,但是以ref参数的形式就等于你把身份证原件给了别人,那用原件开办的任何卡都会直接改变你。
ref 和out在结果上其实都是将函数内部需要返回的值传出来的同时不需要修改函数的返回值类型。但不同的是ref参数是将参数代入,也就是说如果函数的内部没有对ref参数进行修改,那ref参数的值不会改变。但是out参数在函数内部是必须对out参数进行赋值不然会报错
但是ref参数是可以在函数内不对参数进行操作的。
所以两者还是有差别的
原文:http://www.cnblogs.com/stelva/p/4361191.html