C# 关键字

1、namespace 命名空间

  命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式。在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。

我们举一个计算机系统中的例子,一个文件夹(目录)中可以包含多个文件夹,每个文件夹中不能有相同的文件名,但不同文件夹中的文件可以重名。

1.1、using 

  引入空间

using System;
using Namespace1.SubNameSpace;

 

2、class 命名一个类  

  当你定义一个类时,你定义了一个数据类型的蓝图。

  这实际上并没有定义任何的数据,但它定义了类的名称意味着什么,也就是说,类的对象由什么组成及在这个对象上可执行什么操作。

  对象是类的实例。构成类的方法和变量称为类的成员。

3、struct  命名一个结构体

  结构体是值类型数据结构。

4、interface 命名一个接口

  接口定义了所有类继承接口时应遵循的语法合同。

  接口定义了属性、方法和事件,这些都是接口的成员。接口提供了派生类应遵循的标准结构。

  接口使得实现接口的类或结构在形式上保持一致。

  接口本身并不实现任何功能,它只是和声明实现该接口的对象订立一个必须实现哪些行为的契约。

 

  抽象类:

    抽象类在某种程度上与接口类似,但是,它们大多只是用在当只有少数方法由基类声明由派生类实现时。

    抽象类不能直接实例化,但允许派生出具体的,具有实际功能的类。

 

5、enum 定义一个枚举

  枚举是一组命名整型常量。一组自己的值,不能被继承与传递。

 6、delegate 委托

  定义:是存有对某个方法的引用的一种引用类型变量,引用在运行时可被改变。

  类似 c与c++中函数的指针。

  特别用于实现事件和回调方法。所有委托都派生自System.Delegate类。

  一旦生命了委托类型,委托对象必须使用new关键字来创建。当委托创建时,传递到new语句的参数就像方法调用一样书写,但是不带参数。

  例如:

  

public delegate void printString(string s);
...
printString ps1 = new printString(WriteToScreen);
printString ps2 = new printString(WriteToFile);
using System;

delegate int NumberChanger(int n);
namespace DelegateAppl
{
   class TestDelegate
   {
      static int num = 10;
      public static int AddNum(int p)
      {
         num += p;
         return num;
      }

      public static int MultNum(int q)
      {
         num *= q;
         return num;
      }
      public static int getNum()
      {
         return num;
      }

      static void Main(string[] args)
      {
         // 创建委托实例
         NumberChanger nc1 = new NumberChanger(AddNum);
         NumberChanger nc2 = new NumberChanger(MultNum);
         // 使用委托对象调用方法
         nc1(25);
         Console.WriteLine("Value of Num: {0}", getNum());
         nc2(5);
         Console.WriteLine("Value of Num: {0}", getNum());
         Console.ReadKey();
      }
   }
}
当上面的代码被编译和执行时,它会产生下列结果:

Value of Num: 35
Value of Num: 175

 

posted @ 2022-08-19 14:37  jiaxin2015  阅读(198)  评论(0)    收藏  举报