码迷,mamicode.com
首页 > Windows程序 > 详细

C#入门经典(第五版)学习笔记(二)

时间:2015-05-05 12:10:37      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

---------------函数---------------
参数数组:可指定一个特定的参数,必须是最后一个参数,可使用个数不定的参数调用函数,用params关键字定义它们
例如:

1 static int SumVals(params int[] vals)
2  {
3      int sum = 0;
4      foreach(int val in vals)
5      {
6          sum += val;
7      }
8      return sum;
9  }

调用SumVals:    int sum = SumVals(1,2,5,7,8,12,34);
结果sum=69

引用参数:关键字ref,传递参数本身而非传递参数的值
例如:

1 static void ShowDouble(ref int val)
2  {
3      val *= 2;
4  }
5  int i = 5;
6  ShowDouble(ref i);

结果i=10

输出参数:关键字out,传出参数
例如:

 1 static int MaxValue(int[] intArray,out int maxIndex)
 2  {
 3      int maxVal = intArray[0];
 4      maxIndex = 0;
 5      for (int i = 0; i < intArray.Length; i++)
 6      {
 7          if (intArray[i] > maxVal)
 8          {
 9              maxIndex = i;
10              maxVal = intArray[i];
11          }
12      }
13      return maxVal;
14  }

调用MaxValue:

1 int[] intArray = {1,2,5,7,8,12,34};
2 int maxIndex,maxValue;
3 maxValue = MaxValue(intArray,out maxIndex)

结果maxIndex = 6

委托实例:

 1     class Program
 2      {
 3          delegate double ProcessDelegate(double param1, double param2);
 4 
 5          static double Multiply(double param1, double param2)
 6          {
 7              return param1 * param2;
 8          }
 9          static double Divide(double param1, double param2)
10          {
11              return param1 / param2;
12          }
13 
14          static void Main(string[] args)
15          {
16              ProcessDelegate process;
17              Console.WriteLine("2 number");
18              string input = Console.ReadLine();
19              int commaPos = input.IndexOf(,);
20              double param1 = Convert.ToDouble(input.Substring(0, commaPos));
21              double param2 = Convert.ToDouble(input.Substring(commaPos + 1, input.Length - commaPos - 1));
22             Console.WriteLine("xxx");
23              input = Console.ReadLine();
24              if (input == "M")
25                  process = new ProcessDelegate(Multiply);
26              else
27                  process = new ProcessDelegate(Divide);
28              Console.WriteLine("Result: {0}", process(param1, param2));
29              Console.ReadKey();
30          }
31      }



---------------调试和错误处理---------------
断点可选择性触发,列表如下:
1)总是中断
2)在Hit Count等于多少次时中断
3)在Hit Count是某个数的倍数时中断
4)在Hit Count大于等于多少次时中断

try…catch…finally
try块:抛出异常
catch块:执行抛出异常后的操作
finally块:不论是否抛出异常都会执行的操作

C#入门经典(第五版)学习笔记(二)

标签:

原文地址:http://www.cnblogs.com/ctyjdzk/p/4478388.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!