今天分享一下C#部分关键字详解:
这里写目录标题
Goto
while (true) {
i++;
if (i == 5) {
goto myLable;
}
if (i == 9) {
Console.Write(“哇哇哇哇”);
}
}
myLable: Console.Write(“跳出循环,直接运行本行代码”);
Return
用于终止方法,表示方法运行结束,return后的剩余代码不执行.
Break
break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句。由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的break语句才是合法的。
continue
continue语句和break语句相似。所不同的是,它不是退出一个循环,而是开始循环的一次新迭代。
object
所有类型的基类型,可以用来定义声明任何类型的数据。可以将任何类型的值赋给object类型的变量。
Foreach 循环
float[,] array = { {13,23 },{22,44 },{ 25,89}};
foreach (float temp in array)
{
Console.WriteLine(temp);
}
params 参数数组
static int Sum(params int[] array)
{
int sum = 0;
for (int i = 0; i < array.Length; i++) {
sum += array[i];
}
return sum;
}
static void Main(string[] args)
{
int sum = Sum(12,23,34,63,43,12,5,6,18,5);
Console.WriteLine(sum);
}
delegate 委托
//定义委托和定义方法区别在于多了delegate关键字,且不需要函数体.
public delegate double MyDelegate(double num1, double num2);
class Program
{
static double Multiply(double num1, double num2)
{
return num1 * num2;
}
static void Main(string[] args)
{
MyDelegate de;//定义新变量
de = Multiply;
//当给一个委托的变量赋值时,返回值和参数列表必须一样.
double num = de(1.23, 4.63);
Console.WriteLine(num);
}
}
虚方法 virtual(声明) override(重写)
重写后的父类方法已改变。
隐藏方法
父类方法被隐藏,但仍然存在。
调用子类新方法:子类 boss = new 子类;boss.Move();
调用父类隐藏方法:父类 boss = new 子类;boss.Move();
abstract抽象类
继承抽象类的子类必须实现父类所有的抽象方法。
sealed 声明密封类和密封方法
接口 Interface (无方法体,不能被实例化)
定义接口
public interface IFlyHandler{
public void Fly();
}
实现接口
public class Type1Enemy:IFlyHandler{
}
定义一个接口在语法上跟定义一个抽象类完全相同,但不允许提供接口中任何成员的实现方式,一般情况下,接口只能包含方法,属性,索引器和事件的声明。
接口不能有构造函数,也不能有字段,接口也不允许运算符重载。
接口定义中不允许声明成员的修饰符,接口成员都是公有的
接口可以彼此继承,其方式和类的继承方式相同
public interface A{
void Method1();
}
public interface B:A{
void Method2();
}