引用的时候需要在参数和使用的时候加上 ref 关键字
-
static bool addnum (ref int val) //引用 { ++val; return true; }
- 参数数组的概念,可以接受该类型的数组,不限制大小,关键字 params
-
static int getlength (params int[] vals) //参数数组 { int sum = 0; foreach (int val in vals) { sum += val; } return sum; }
- 输出参数的概念,类似参数数组,不过声明的时候可以不初始化
-
static int MaxValue (int[] intArray, out int maxIndex) //输出参数 { int maxValue = intArray[0]; maxIndex = 0; for (int i = 1; i < intArray.Length; ++i) { if (intArray[i] > maxValue) { maxValue = intArray[i]; maxIndex = i; } } return maxValue; }
- 委托 delegate : 委托的声明类似函数,但不带函数体,并且要使用 delegate 关键字。委托的声明指定了一个 返回类型 和一个 参数列表
-
delegate double ProcessDelegate (double param1, double param2); static double Multiply (double param1, double param2) { return param1 * param2; } static double Divide (double param1, double param2) { return param1 / param2; } static void Main(string[] args) { ProcessDelegate process; string input = Console.ReadLine(); if (input.CompareTo("M") == 0) { process = new ProcessDelegate (Multiply); } else { process = new ProcessDelegate(Divide); } double param1 = 3.123; double param2 = 23.12; Console.WriteLine("{0}", process(param1, param2)); }
- 指定类是抽象的 abstract,不能实例化,只能继承,可以有抽象成员
-
abstract class MyClass1 { }
- 指定类是密封的 sealed, 不能继承
-
sealed class MyClass2 { }
- 成员定义
-
- public 成员可以由任何代码访问
- private 成员由类中的代码访问
- internal 成员只能由定义它的程序集内部的代码访问
- protected 成员只能由类或派生类中的代码访问
- 定义方法
- virtual 方法可以重写
- abstract 方法必须在非抽象类的派生类中重写
- override 方法重写了一个基类方法
- extern 方法定义放在其他地方
时间: 2024-10-11 09:07:51