悲催的人永远悲剧。昨天半夜好不容易码好的字,就因为一个回车键,全消失
了。。。~~~~(>_<)~~~~ 今天再来一遍。
作为上海敬杰公司的第一批学员,我很惭愧,大学四年虽然也上了课,也通过了
考试,到底学到什么了我还真说不好。如果让我总结高中的知识要点我还能说出个
一二来,但是要我说软件是个啥,那真的是一桶浆糊。因此,我很看重这次重新学
习的机会。
老桂一直强调要写博客,要写博客。说实话,我真不知道要拿什么东西出来跟大
家分享,在我看来,只有学习别人的份,没有什么可以让别人学习的地方。硬要写
的话,只能算是给自己一个复习总结知识点的地方。话说还真是多灾多难,昨天我
还因为急性肠炎在医院里挂瓶子。拜此所赐,我的数组和集合又混过去了(老桂,给
我开小灶,我要吃私食儿!~o(>﹏<)o)。不过,也许是因为躺了两天,也许是因为
老桂开始讲比较抽象一些的知识,昨天的课程听起来感觉很大脑很清晰。以下是其
中部分的知识点。
普通方法按照参数划分可以分成:
1、值类型参数方法:出得来
2、引用类型参数方法:出不来
3、ref关键字参数方法:出得来,进得去
4、out关键字参数方法:出得来,进不去
5、params关键字参数方法:随便改
static
void Main(
string[] args)
{
Myclass mc= new Myclass();
int[] arrint = new int[] { 1, 2, 3 };
mc.Method5( "d", 2, 3, 4, 1, 2, 2, 2, 2, 2);
//int i = 10;
//string j = "11";
//mc.Method4(out i, out j);
//Console.WriteLine(i);
//Console.WriteLine(j);
//string i = "10";
//mc.Method3(ref i);
//Console.WriteLine(i);
//int i = 200;
//mc.Method1(i);
//Console.WriteLine(i);
//int[] arrint = new int[] { 1, 2, 3 };
//mc.Method2(arrint);
//foreach (int i in arrint)
//{
// Console.WriteLine(i);
//}
}
}
partial class Myclass
{
//定义值类型的参数
public void Method1( int i)
{
Console.WriteLine(i);
i = 100;
}
//引用类型的参数
public void Method2( int[] arrint)
{
foreach ( int i in arrint)
{
Console.WriteLine(i);
}
arrint[0] = 100;
}
//ref作参数
public void Method3( ref string i)
{
Console.WriteLine(i);
i = "100";
}
public void iss( ref string j)
{
Method3( ref j);
}
//out作参数
public void Method4( out int i, out string j)
{
i = 100;
j = "10";
Console.WriteLine(i);
}
//动态参数
public void Method5( string t, params int[] arrint)
{
foreach ( int i in arrint)
{
Console.WriteLine(i);
}
//arrint [0]=100;
}
public void Method5( string a, int b)
{
Console.WriteLine( "222222");
}
}
{
Myclass mc= new Myclass();
int[] arrint = new int[] { 1, 2, 3 };
mc.Method5( "d", 2, 3, 4, 1, 2, 2, 2, 2, 2);
//int i = 10;
//string j = "11";
//mc.Method4(out i, out j);
//Console.WriteLine(i);
//Console.WriteLine(j);
//string i = "10";
//mc.Method3(ref i);
//Console.WriteLine(i);
//int i = 200;
//mc.Method1(i);
//Console.WriteLine(i);
//int[] arrint = new int[] { 1, 2, 3 };
//mc.Method2(arrint);
//foreach (int i in arrint)
//{
// Console.WriteLine(i);
//}
}
}
partial class Myclass
{
//定义值类型的参数
public void Method1( int i)
{
Console.WriteLine(i);
i = 100;
}
//引用类型的参数
public void Method2( int[] arrint)
{
foreach ( int i in arrint)
{
Console.WriteLine(i);
}
arrint[0] = 100;
}
//ref作参数
public void Method3( ref string i)
{
Console.WriteLine(i);
i = "100";
}
public void iss( ref string j)
{
Method3( ref j);
}
//out作参数
public void Method4( out int i, out string j)
{
i = 100;
j = "10";
Console.WriteLine(i);
}
//动态参数
public void Method5( string t, params int[] arrint)
{
foreach ( int i in arrint)
{
Console.WriteLine(i);
}
//arrint [0]=100;
}
public void Method5( string a, int b)
{
Console.WriteLine( "222222");
}
}
讲相应的注释取消和加载就可以测试出值传递的效果。
原来那版的分析还是很细致的,由于前一版丢失了,今天就简化了一下。以后还是
做个副本吧。。T-T
转载于:https://blog.51cto.com/gabrielsnewlife/356891