黑马程序员————方法简介
来源:互联网 发布:简单图表制作软件 编辑:程序博客网 时间:2024/06/07 06:41
---------------------- ASP.Net+Android+IO开发S、.Net培训、期待与您交流! ----------------------
方法:
方法的声明:
[public] static void 方法名([参数列表])
{
方法体:
}
Public :访问修饰符。
Static:表示静态的。
Void:返回值的类型,如果没有返回值,就写void,如果有返回值,就写对应的类型
方法名:必须符合Pascal命名规范。
参数列表:参数
用[]标记的内容可以省略
注:函数的功能要单一,越单一越好,只用来实现某一项功能。
方法的调用:类名.方法名();
注:如果你写的方法跟Main()方法同在program这个类中,那么你调用方法的时候,可以省略类名,直接方法名()调用。
例1:
static void Main(string[] args) { //要求用户输入两个数字 比较这两个数字的大小 Console.WriteLine("请输入第一个数"); int number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("请输入第二个数"); int number2 = Convert.ToInt32(Console.ReadLine()); int max = GetMax(number, number2); Console.WriteLine("这两个数字中比较大的值是{0}",max); Console.ReadKey(); } /// <summary> /// 比较两个数字的大小,并且返回比较大的值 /// </summary> /// <param name="n1">int 类型的参数</param> /// <param name="n2">int 类型的参数</param> /// <returns>返回的比较大的值</returns> public static int GetMax(int n1, int n2)//形参 { int max = n1 > n2 ? n1 : n2; return max; }
例2:
int[] numbers = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 }; int max = GetSumTwo(numbers); Console.WriteLine("这个数组的最大值是{0}", max); Console.ReadKey();public static int GetSumTwo(int[] nums) { int max = nums[0]; for (int i = 0; i < nums.Length; i++) { if (nums[i] > max) { max = nums[i]; } } return max; }
例3:
Console.WriteLine("请输入一个数字"); string input = Console.ReadLine(); int number = IsNumber(input); bool b = IsPrime(number); Console.WriteLine("您输入的数字{0}质数", b); Console.ReadKey();public static bool IsPrime(int number) { bool b = true; if (number < 2) { b = false; } for (int i = 2; i <= number - 1; i++) { if (number % i == 0) { b = false; } } return b; }
例4:
static void Main(string[] args) { string[] names = { "张三", "李四", "王二麻子", "赵六", "田七" }; string str = Change(names); Console.WriteLine(str); Console.ReadKey(); } public static string Change(string[] str) { string strNew = ""; for (int i = 0; i < str.Length-1; i++) { strNew += str[i] + "|"; } return strNew + str[str.Length - 1]; }
Return的两个作用:
1、跳出当前的方法
2、返回要返回的值。
方法之间的调用:
我们在Main()方法中调用Test()方法,我们管Main()方法叫做调用者,管Test()方法叫做被调用者,如果被调用者想得到调用者的值,有两个方法。
1、传参数
2、使用静态字段
注:在静态方法中,只能访问静态字段
如果调用者想要得到被调用者的值,使用返回值:
1、确定有没有返回值
2、如果有返回值,确定返回值的类型
3、Return 返回值
out参数
作用就是返回多个值 在方法内必须为out参数赋值
例1:
static void Main(string[] args) { //请用户输入用户名和密码 写一个方法判断用户是否登录成功 并且返回登录信息 Console.WriteLine("请输入用户名"); string strName = Console.ReadLine(); Console.WriteLine("请输入密码"); string strPwd = Console.ReadLine(); string str; bool b = IsLogin(strName, strPwd, out str); Console.WriteLine("登录结果{0}",b); Console.WriteLine("登录信息{0}",str); Console.ReadKey(); } public static bool IsLogin(string name, string pwd,out string msg)//在多余返回值的前面标记out { bool b = false; if(name=="admin"&&pwd=="admin") { b = true; msg = "登录成功"; } else if (name == "admin") { msg = "密码错误"; } else if (pwd == "admin") { msg = "用户名错误"; } else { msg = "未知错误"; } return b; }
例2:
static void Main(string[] args) { // int.TryParse Console.WriteLine("请输入一个数字"); string input = Console.ReadLine(); int res; bool b = MyTryParse(input, out res); Console.WriteLine(b); Console.WriteLine(res); Console.ReadKey(); } public static bool MyTryParse(string input, out int result) { bool b = false; result = 0; try { result = Convert.ToInt32(input); b = true; } catch { } return b; }
ref 参数
侧重于将值带入一个方法中,再将值从这个方法中带出 ref参数要求在方法外必须赋值
例如:
static void Main(string[] args) { int n1 = 10; int n2 = 20; Change(ref n1,ref n2); Console.WriteLine(n1); Console.WriteLine(n2); Console.ReadKey(); } public static void Change(ref int number1, ref int number2) { int temp = number1; number1 = number2; number2 = temp; }
方法的重载:
方法重载就是指方法的名称相同,参数不同,跟返回值没有关系
如果几个方法构成了重载,如果他们的参数的个数相同,那么它们参数的类型就不能相同,如果他们参数的类型相同,那么它们参数的个数就不能相同
例如:
public static void GetSum(int n1, int n2) { int sum = n1 + n2; } public static double GetSum(double d1, double d2) { return d1 + d2; } public static string GetSum(string s1, string s2) { return s1 + s2; }
方法的递归:
就是方法自己调用自己。
例如:
public static int i = 0; static void Main(string[] args) { TellStory(); Console.ReadKey(); } public static void TellStory() { Console.WriteLine("从前有座山"); Console.WriteLine("山里有个庙"); Console.WriteLine("庙里有个老和尚和小和尚"); Console.WriteLine("有一天,小和尚哭了,老和尚给小和尚讲故事,讲的是"); i++; if (i >= 10) { return; } TellStory(); }
params:
params 构造函数声明数组 而不知道数组长度
注:在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。
例如:
static void Main(string[] args) { GetSum("张三", 10,50,80,40,05); Console.ReadKey(); } public static void GetSum(string name,int id,params int[] nums) { int sum = 0; for (int i = 0; i < nums.Length; i++) { sum += nums[i]; } Console.WriteLine("{0}的考试成绩的总分是{1},{2}", name, sum,id); }
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
- 黑马程序员——Math方法简介
- 黑马程序员—HTML简介
- 黑马程序员————方法简介
- 黑马程序员——Java简介
- 黑马程序员——Java简介
- 黑马程序员——java的简介
- 黑马程序员—java基础语言简介
- 黑马程序员—数组、方法
- 黑马程序员——构造方法
- 黑马程序员——常用排序方法
- 黑马程序员——反射调用方法
- 黑马程序员——oc中的方法
- 黑马程序员——OC类方法
- 黑马程序员——模板方法
- 黑马程序员——模版方法
- 黑马程序员—方法日志总结
- 黑马程序员—方法重载日志总结
- 黑马程序员—三种加密方法
- poj 1459 Power Network 最大流建图练习
- 查看本机.NET Framework版本
- 双字节除以单字节 除法 MCU:SONIX
- 为Ruby On Rails开发者准备的5款IDE
- Fedora问题总结
- 黑马程序员————方法简介
- I/O系统
- 执行不完整恢复
- android的viewbadger"徽章"任何给定的Android视图,而无需在运行时布局,以迎合在一个简单的方法
- Spring Security的配置及使用
- 在VS2008中用C#的安装包的问题,懂的进---------
- String,创建对象问题
- 视频监控RTSP 客户端
- 关于hibernate的缓存使用