黑马程序员_C#面向过程学习总结2
来源:互联网 发布:java实现加法运算 编辑:程序博客网 时间:2024/06/05 05:41
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
方法
功能:用来复用代码的,当我们在一个程序中反复的写了同样的代码,那一般情况下,我们可以把需要重复写的代码定义在一个方法中,用的时候只需要调用就行了
定义语法:
[访问修饰符][static] 返回值类型 方法名([参数])
{
方法体;
} []括起来的可以省略
方法一般定义在类中
如果方法没有值,则返回值类型写void
如果方法没有参数,()不能省略
方法的调用:
如果是静态方法(由static修饰的)则使用
类名.方法名();
在类中调用本类的方法,可以只写
方法名();
非本类的则写
类名.方法名();
在类中写return; 立即跳出本方法
方法注释,在方法前连按三个/// 定义了方法注释后,Max后边所要输入的就会有提示
/// <summary>
/// 找出两个数中的最大数
/// </summary>
/// <param name="i">第一个数</param>
/// <param name="j">第二个数</param>
/// <returns>返回值</returns>
代码:
变量的作用域:
在方法中定义的变量为局部变量,其作用域从定义开始,到其所在的大括号结束为止
当被调用者想得到调用者方法中的变量时,则可以让调用者通过参数的形式给被调用者
参数
参数分为实参和形参
如:
public static void Test(int num) //形参 给num传过来的值叫做实参
{
}
在方法名后面的括号内定义变量,叫作这个方法的参数。
这里定义的变量用于接收调用者传过来的数据
注意:如果一个方法一旦有参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型必须一致
代码:
当形参是数组的时候,传数组名 代码:
返回值
当调用者想访问我们方法中的变量时,可以通过返回值返回
例如:
string s=console.readline();
int i=convert.toint32("333");
为什么方法前面能够定义一个变量收到方法的值,是因为在方法中使用了返回值
只要在方法中返回了值,那么在调用方法中,前面就应该用一个变量来接收方法的返回值
注意: 一个方法只能有一个返回值
一旦一个方法有返回值,那么在这个方法中,就必须通过return语句返回一个值,并且这个值要与返回值类型是相同的
语法:
方法中的void需要改成要返回值的类型
如:
public static int Add() int为返回值类型
return 值;
代码:
一个变量一旦定义在方法外、类的里面,就叫做类的字段,这个变量就可以被本类的所有方法所访问,要注意,静态方法只能访问静态字段
代码:
out
实现步骤:
1.在方法的参数类型前加out,那么传参数的时候,也必须在num前加out,表明这个参数不是传入的,而是用来传出值的
2.如果参数是以out形式传入的,那么在传入前可以不赋初值
3.在方法中对于由out修饰的参数,必须赋值,并且必须在使用前赋值
代码:
ref
跟out用法相同,不过out只能传出,ref是双向的,即可以传入,又可以传出
out用于传出值,在方法中必须对out修饰的参数进行赋值,ref想赋值就赋值,不想赋值也可以
参数前边如果什么都不加,叫做复制
如果加了out或ref 叫做一块使用同一个变量
这就相当于屏蔽了C语言中的指针
在传参数的过程中,如果参数有out或ref修饰的话,那么改变方法中的参数变量的值,调用者方法中的值也会相应改变
代码:
方法的重载:
一般在同一个类中,方法名相同,并且方法的参数的个数不同或者对应位置一的类型不同,才能枸成方法重载
注意:方法重载和返回值没有关系
代码:
随机数
产生一个m到n之间的的随机数
Random i = new Random();
int s=i.next(m,n+1);
括号中的数为最小能取到1,最大能取到99 1<=s<100
代码:
方法
功能:用来复用代码的,当我们在一个程序中反复的写了同样的代码,那一般情况下,我们可以把需要重复写的代码定义在一个方法中,用的时候只需要调用就行了
定义语法:
[访问修饰符][static] 返回值类型 方法名([参数])
{
方法体;
} []括起来的可以省略
方法一般定义在类中
如果方法没有值,则返回值类型写void
如果方法没有参数,()不能省略
方法的调用:
如果是静态方法(由static修饰的)则使用
类名.方法名();
在类中调用本类的方法,可以只写
方法名();
非本类的则写
类名.方法名();
在类中写return; 立即跳出本方法
方法注释,在方法前连按三个/// 定义了方法注释后,Max后边所要输入的就会有提示
/// <summary>
/// 找出两个数中的最大数
/// </summary>
/// <param name="i">第一个数</param>
/// <param name="j">第二个数</param>
/// <returns>返回值</returns>
代码:
static void Main(string[] args) { ShowUI(); //调用方法 格式 int[] score = { 1, 3, 6, 23, 25, 23 }; for (int i = 0; i < score.Length - 1; i++)//外层循环控制趟数 { for (int j = 0; j < score.Length - 1 - i; j++)//内层循环控制次数 { if (score[j] < score[j + 1]) { int temp = score[j]; score[j] = score[j + 1]; score[j + 1] = temp; } } } for (int i = 0; i < score.Length; i++) { Console.WriteLine(score[i]); } ShowUI(); Console.ReadKey(); } /// <summary> /// 定义了一个ShowUI方法,用来在主界面显示 ******************* 方法一定要定义在类中 /// </summary> public static void ShowUI() //也可写成 void ShowUI() //ShowUI()里边的参数可以不写,但()不能不写 定义方法名一般首字母要大写 { Console.WriteLine(" ******************** "); }
变量的作用域:
在方法中定义的变量为局部变量,其作用域从定义开始,到其所在的大括号结束为止
当被调用者想得到调用者方法中的变量时,则可以让调用者通过参数的形式给被调用者
参数
参数分为实参和形参
如:
public static void Test(int num) //形参 给num传过来的值叫做实参
{
}
在方法名后面的括号内定义变量,叫作这个方法的参数。
这里定义的变量用于接收调用者传过来的数据
注意:如果一个方法一旦有参数,那么调用者就必须传参数,并且传参数的个数与对应位置上的类型必须一致
代码:
static void Main(string[] args) { int a = 5; Test(a,3); Console.ReadKey(); } public static void Test(int i,int j) { Console.WriteLine("i+j={0}",i+j); }
当形参是数组的时候,传数组名 代码:
static void Main(string[] args) { int[] aaa = { 1, 2 }; // 传参 Test(aaa); //***************** int sum = Test(aaa); //***********8********** Console.WriteLine(sum); Console.ReadKey(); } public static int Test(int[] numbers) { int sum = 0; for (int i = 0; i < numbers.Length; i++) { sum += numbers[i]; } return sum; }
返回值
当调用者想访问我们方法中的变量时,可以通过返回值返回
例如:
string s=console.readline();
int i=convert.toint32("333");
为什么方法前面能够定义一个变量收到方法的值,是因为在方法中使用了返回值
只要在方法中返回了值,那么在调用方法中,前面就应该用一个变量来接收方法的返回值
注意: 一个方法只能有一个返回值
一旦一个方法有返回值,那么在这个方法中,就必须通过return语句返回一个值,并且这个值要与返回值类型是相同的
语法:
方法中的void需要改成要返回值的类型
如:
public static int Add() int为返回值类型
return 值;
代码:
static void Main(string[] args) { //判断是否为闰年 Console.WriteLine("请输入年份:"); int year = int.Parse(Console.ReadLine()); //int.parse 跟convert.toint32 作用相同 bool result = LeapYear(year); //要在Main方法中调用方法中的值,就必须用返回值,然后在Main方法中定义一个变量来接收返回值 if (result) { Console.WriteLine("闰年"); } else { Console.WriteLine("不是闰年"); } Console.ReadKey(); } //是否为闰年的方法 public static bool LeapYear(int year) //bool 就为返回值类型 { if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) { return true; //要有返回值,方法中就必须将void改成所要返回值的类型 } else { return false; } }
一个变量一旦定义在方法外、类的里面,就叫做类的字段,这个变量就可以被本类的所有方法所访问,要注意,静态方法只能访问静态字段
代码:
const double PI = 3.14; //方法不管是不是静态的,都可以访问常量 常量(const)不能定义成静态的。 static int a = 10; //这俩个变量就是定义在方法外、类的里面 静态方法要访问,前面就必须加 static 而非静态的方法即可以访问静态的,也可以访问非静态的 static int b = 20; int c = 30; static void Main(string[] args) { MyTest(); Console.ReadKey(); } public static void MyTest() //如果参数中的变量名和方法外、类的里面的方法重名,则要写 program.变量名 提示为方法外、类的里面的方法 { Console.WriteLine("{0}",a+b); //如果要访问int c=30; 中的c ,则方法中的静态修饰符就要去掉 ,如下: } public void MyFirst() { Console.WriteLine("{0}",a+b+c); }
out
实现步骤:
1.在方法的参数类型前加out,那么传参数的时候,也必须在num前加out,表明这个参数不是传入的,而是用来传出值的
2.如果参数是以out形式传入的,那么在传入前可以不赋初值
3.在方法中对于由out修饰的参数,必须赋值,并且必须在使用前赋值
代码:
static void Main(string[] args) { int num; int word = Test(out num); //调用方法中的参数时也要加out,表示num用于接收a参数的返回值的 Console.WriteLine("num={0} word={1}",num,word); Console.ReadKey(); } public static int Test(out int a) //在方法中参数前加个out之后,a就不是往里边传值了,而是往外边反值 { a = 20; //加了out之后,在方法中就必须对a进行赋值 return a; }
ref
跟out用法相同,不过out只能传出,ref是双向的,即可以传入,又可以传出
out用于传出值,在方法中必须对out修饰的参数进行赋值,ref想赋值就赋值,不想赋值也可以
参数前边如果什么都不加,叫做复制
如果加了out或ref 叫做一块使用同一个变量
这就相当于屏蔽了C语言中的指针
在传参数的过程中,如果参数有out或ref修饰的话,那么改变方法中的参数变量的值,调用者方法中的值也会相应改变
代码:
static void Main(string[] args) { int i = 10; Test(ref i); Console.WriteLine(i); Console.ReadKey(); } static void Test(ref int a) //如果不加ref的话,方法中a的赋值不影响i的输出值, 加了之后a里边存储的就是i的地址,对a赋值就相当于把赋给a的值指向i,a的值改变了,i的值也就跟着改变了。 { a = 100; }
方法的重载:
一般在同一个类中,方法名相同,并且方法的参数的个数不同或者对应位置一的类型不同,才能枸成方法重载
注意:方法重载和返回值没有关系
代码:
static void Main(string[] args) { string a = "aaa"; int max = Max(10, 20); Console.WriteLine(max); string word = Max(a, 10); Console.WriteLine(word); int sum = Max(10, 20, 30); Console.WriteLine(sum); Console.ReadKey(); } //方法重载 /// <summary> /// 下边的为方法重载 都是Max /// </summary> /// <param name="a"></param> /// <param name="b"></param> /// <returns></returns> public static int Max(int a, int b) { if (a > b) { return a; } else { return b; } } public static string Max(string a, int b) { string word = ""; word= a + b; return word; } public static int Max(int a, int b,int c) { int sum = 0; sum = a + b + c; return sum; }
随机数
产生一个m到n之间的的随机数
Random i = new Random();
int s=i.next(m,n+1);
括号中的数为最小能取到1,最大能取到99 1<=s<100
代码:
static void Main(string[] args) { Random i = new Random(); //定义一个名称为i的随机函数 string a = "123", b = "456"; string msg = ""; msg = string.Format("{0}连接{1}后的值为{2}", a, b,a+b); //如果对一个字符串进行赋值想要使用占位符,用string.format(); 用法和console相同,但只是给类型赋值 Console.WriteLine(msg); while (true) { int s = i.Next(1, 100); //括号中的数为最小能取到1,最大能取到99 1<=s<100 Console.WriteLine(s); Console.ReadKey(true); //readkey(true)里边的true为设置用户所按的任意键是否显示在屏幕上 true为不显示 false为显示 } }
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima/
- 黑马程序员_C#面向过程学习总结2
- 黑马程序员_C#面向过程学习总结1
- 黑马程序员_C#面向对象学习知识总结2
- 黑马程序员_C#基础总结(面向过程)
- 黑马程序员_C#面向对象学习知识总结1
- 黑马程序员_C#面向过程小结
- 黑马程序员_C#面向对象总结
- 黑马程序员_C#面向对象总结
- 黑马程序员_C#面向对象学习笔记
- 黑马程序员_C#面向对象知识总结3
- 黑马程序员_C#40学习笔记2
- 黑马程序员_c#面向对象基础:属性
- 黑马程序员_java面向过程总结
- 黑马程序员_C#基础2
- 黑马程序员_C语言的一些总结
- 黑马程序员_C语言_数据类型总结
- 黑马程序员_C#基础篇总结1
- 黑马程序员_C#基础篇总结3
- Qt中的QMap
- Team Foundation Server 2010 安装、部署与配置(五):用户权限管理
- delphi system.pas not found 错误原因
- linux/arch/arm/下的故事
- discuz二次开发
- 黑马程序员_C#面向过程学习总结2
- TCP/IP协议中常用端口表
- 黑马程序员之ASP.NET学习笔记: 几个常用方法有效优化ASP.NET的性能
- 解释器构造实现函数调用
- 不进步,就意味着自己即将会被淘汰
- java的softReference与weakReference
- ARM指令中灵活的第二操作数
- Linux下Redis的安装、配置操作说明
- Quantile-Quantile Plot