1.演示try catch捕获例子:
public static void getNumber() { while (true) { try { Console.WriteLine("请输入一个数字"); int number = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("恭喜您输入对了,您输入的数字是:{0}", number); break; } catch { Console.WriteLine("输入错了,请重新输入,需要输入阿拉伯数字,就是‘0123456789’这样的数字,你明白吗?"); } } Console.ReadKey(); }
2 :ref参数:更新传递到别的方法中的值。方法a中声明定义的一个变量传到方法b中,在经过方法b更新值后,方法a的值也会跟着更新。
变量定义在类中那么就是这个类的属性,不管在任何地方更新这个对象,只要更新完成所有被引用的这个对象都会同步更新。
变量定义在方法中,由于方法不能像类一样被传递,所以从它被传过去的那一刻开始就属于独立的了,不会再被引用了,从此你是你我是我,各不相干,这就是方法要返回值得作用,就是接受被加工后此值得变化。
在C#中ref关键字就比较牛逼了,在不需要定义对象的情况下就能实现变量随时在不同的方法中更新。需要的时候就用,不需要的时不用,很方便。
using System; namespace ConsoleApp2 { class Program { static void Main(string[] args) { string name = "王晓明"; int age = 28; //ref的作用是:被调用方法更新变量值后同步到外层变量上。 goThailand(ref name, ref age); Console.WriteLine("name:{0}\nage:{1}", name, age); Console.ReadKey(); /* * 运行结果 name:杨baby age:32 */ } static void goThailand(ref string name, ref int age) { name = "杨baby"; age = 32; } } }
3.演示out方法的实例:可以接受被调用的方法返回多个不同类型的值,要求out参数必须在方法内赋值:
using System; namespace ConsoleApp2 { class Program { static void Main(string[] args) { int[] sums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int ma, mi, su, av; string nam; testOutMethod(sums, out ma, out mi, out su, out av, out nam);//变量名没要求 Console.WriteLine("sums数组计算结果:max:{0},min:{1},sum:{2},avg:{3},name:{4}", ma, mi, su, av, nam); Console.ReadKey(); //打印结果:sums数组计算结果:max:9,min:0,sum:45,avg:5,name:aaaaa } public static void testOutMethod(int[] sums, out int max, out int min, out int sum, out int avg, out string name) { max = 0; min = 0; sum = 0; for (int i = 0; i < sums.Length; i++) { if (sums[i] > max) { max = sums[i]; } if (sums[i] < min) { min = sums[i]; } sum += sums[i]; } avg = sum / sums.Length; name = "aaaaa"; } } }
*string类型转int
using System; namespace ConsoleApp2 { class Program { static void Main(string[] args) { int result; //将string类型转为int类型,如果转成功了返回true并且out参数返回转成功后的值,如果失败则返回false也out参数则返回0; bool state = int.TryParse("123", out result); Console.WriteLine("state:{0}\nresult{1}", state, result); Console.ReadKey(); } } }
*使用io流在指定路径下创建一个txt文件并且往文件中输入内容
using System; namespace ConsoleApp2 { class Program { static void Main(string[] args) { string content = "写入文本\n中的内容"; System.IO.File.WriteAllText(@"C:\Users\YanLong.li\Desktop\2bbbbb23.txt", content);//使用流将文件输出并写入进指定的文件夹中 Console.WriteLine("成功"); Console.ReadKey(); } } }