常用C#关键字详解教程(比较全面)

 更新时间:2021年9月22日 10:08  点击:1889

不论你是新手还是老手,是否对C#的某些关键字有些摸不到头脑呢?现在我就和大家一起学习一下这些关键字的含义

类型

Void

用作方法的返回类型时,void 关键字指定方法不返回值。

在方法的参数列表中不允许使用 void。采用以下形式声明一个无参数的、不返回值的方法:

Ovid SampleMethod();

Var

在方法范围中声明的变量可以具有隐式类型 var。隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型。 有返回值

引用类型

Class

类是使用关键字 class 声明的

委托

委托类型的声明与方法签名相似,有一个返回值和任意数目任意类型的参数:
public delegate void TestDelegate(string message);

public delegate int TestDelegate(MyType m, long num);

delegate 是一种可用于封装命名或匿名方法的引用类型。委托类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。

接口

接口只包含方法、属性、事件或索引器的签名。成员的实现是在实现接口的类或结构中完成的

Object

object 类型在 .NET Framework 中是 Object 的别名。在 C# 的统一类型系统中,所有类型(预定义类型、用户定义类型、引用类型和值类型)都是直接或间接从 Object 继承的。可以将任何类型的值赋给 object 类型的变量。将值类型的变量转换为对象的过程称为“装箱”。将对象类型的变量转换为值类型的过程称为“取消装箱”。

String

string 类型表示零或更多 Unicode 字符组成的序列。string 是 .NET Framework 中 String 的别名。

尽管 string 是引用类型,但定义相等运算符(== 和 !=)是为了比较 string 对象(而不是引用)的值。这使得对字符串相等性的测试更为直观。

修饰符

Override

要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override 修饰符。

Virtual

virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。例如,此方法可被任何继承它的类重写。

volatile

volatile 关键字指示一个字段可以由多个同时执行的线程修改。声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制。这样可以确保该字段在任何时间呈现的都是最新的值。

unsafe

unsafe 关键字表示不安全上下文,该上下文是任何涉及指针的操作所必需的。

static

使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。static 修饰符可用于类、字段、方法、属性、运算符、事件和构造函数,但不能用于索引器、析构函数或类以外的类型。

sealed

当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承。

readonly

readonly 关键字是可以在字段上使用的修饰符。当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。

extern

extern 修饰符用于声明在外部实现的方法。extern 修饰符的常见用法是在使用 Interop 服务调入非托管代码时与 DllImport 属性一起使用。在这种情况下,还必须将方法声明为 static

event

event 关键字用于在发行者类中声明事件。

const

const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。

abstract

abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。

访问修饰符

internal

internal 关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的

private

private 关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的

protected

protected 关键字是一个成员访问修饰符。受保护成员在其所在的类中可由派生类实例访问。

public

public 关键字是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别。

abstract 可以和类、方法、属性、索引器及事件一起使用,
标识一个可以扩展但不能被实体化的、必须被实现的类或方法。

as 一个转换操作符,如果转换失败,就返回null。

base 用于访问被派生类或构造中的同名成员隐藏的基类成员。

catch 定义一个代码块,在特定类型异常抛出时,执行块内代码。
参见try和finally。

checked 既是操作符又是语句。
确保编译器运行时,检查整数类型操作或转换时出现的溢出。

const 标识一个可在编译时计算出来的变量值,即一经指派不可修改的值。

delegate 指定一个声明为一种委托类型。委托把方法封装为可调用实体,
能在委托实体中调用。

enum 表示一个已命名常量群集的值类型。

event 允许一个类或对象提供通知的成员,他必须是委托类型。

explicit 一个定义用户自定义转换操作符的操作符,
通常用来将内建类型转换为用户定义类型或反向操作。
必须再转换时调用显示转换操作符。

extern 标识一个将在外部(通常不是c#语言)实现的方法。

finally 定义一个代码块,在程序控制离开try代码快后执行。参见try和catch。

fixed 在一个代码块执行时,在固定内存位置为一个变量指派一个指针。

foreach 用于遍历一个群集的元素。

goto 一个跳转语句,将程序执行重定向到一个标签语句。

implicit 一个操作符,定义一个用户定义的转换操作符。
通常用来将预定义类型转换为用户定义类型或反向操作。
隐式转换操作符必须在转换时使用。

interface 将一个声明指定为接口类型,即实现类或构造必须遵循的合同。

internal 一个访问修饰符。

namespace 定义一个逻辑组的类型和命名空间。

operator 用来声明或多载一个操作符。

out 标识一个参数值会受影响的参数,但在传入方法时,
该参数无需先初始化。

params 声明一个参数数组。如果使用,必须修改指定的最后一个参数。
允许可选参数。

readonly 标识一个变量的值在初始化后不可修改。

ref 标识一个参数值可能会受影响的参数。

sealed 防止类型被派生,防止方法和property被覆载。

sizeof 一个操作符,以byte为单位返回一个值类型的长度。

stackalloc 返回在堆上分配的一个内存块的指针。

struct struct是一种值类型,可以声明常量、字段、方法、property、
索引器、操作符、构造器和内嵌类型。

throw 抛出一个异常。

try 异常处理代码块的组成部分之一。try代码块包括可能会
抛出异常的代码。参阅catch和finally关键字。

typeof 一个操作符,返回传入参数的类型。

unchecked 禁止溢出检查。

unsafe 标注包含指针操作的代码块、方法或类。

using 当用于命名空间时,using关键字允许访问该命名空间中的类型,
而无需指定其全名。也用于定义finalization操作的范围。
virtual 一个方法修饰符,标识可被覆载的方法。

volatile 标识一个可被操作系统、某些硬件设备或并发线程修改的attribute。

一般的构造函数总是public类型的,如果是private类型的,表明类不能被实例化,这通常用于只含有静态的成员的类。

在派生类中声明对虚方法的重载,要求在声明中加上override关键字,而且不能有new,static或virtual修饰符。

密封类在声明中使用sealed修饰符,这样就可以防止该类被其它类继承。

[!--infotagslink--]

相关文章

  • C#实现简单的登录界面

    我们在使用C#做项目的时候,基本上都需要制作登录界面,那么今天我们就来一步步看看,如果简单的实现登录界面呢,本文给出2个例子,由简入难,希望大家能够喜欢。...2020-06-25
  • 浅谈C# 字段和属性

    这篇文章主要介绍了C# 字段和属性的的相关资料,文中示例代码非常详细,供大家参考和学习,感兴趣的朋友可以了解下...2020-11-03
  • C#中截取字符串的的基本方法详解

    这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#实现简单的Http请求实例

    这篇文章主要介绍了C#实现简单的Http请求的方法,以实例形式较为详细的分析了C#实现Http请求的具体方法,需要的朋友可以参考下...2020-06-25
  • C#中new的几种用法详解

    本文主要介绍了C#中new的几种用法,具有很好的参考价值,下面跟着小编一起来看下吧...2020-06-25
  • 使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序)

    这篇文章主要介绍了使用Visual Studio2019创建C#项目(窗体应用程序、控制台应用程序、Web应用程序),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#开发Windows窗体应用程序的简单操作步骤

    这篇文章主要介绍了C#开发Windows窗体应用程序的简单操作步骤,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • C#和JavaScript实现交互的方法

    最近做一个小项目不可避免的需要前端脚本与后台进行交互。由于是在asp.net中实现,故问题演化成asp.net中jiavascript与后台c#如何进行交互。...2020-06-25
  • 经典实例讲解C#递归算法

    这篇文章主要用实例讲解C#递归算法的概念以及用法,文中代码非常详细,帮助大家更好的参考和学习,感兴趣的朋友可以了解下...2020-06-25
  • C++调用C#的DLL程序实现方法

    本文通过例子,讲述了C++调用C#的DLL程序的方法,作出了以下总结,下面就让我们一起来学习吧。...2020-06-25
  • 轻松学习C#的基础入门

    轻松学习C#的基础入门,了解C#最基本的知识点,C#是一种简洁的,类型安全的一种完全面向对象的开发语言,是Microsoft专门基于.NET Framework平台开发的而量身定做的高级程序设计语言,需要的朋友可以参考下...2020-06-25
  • C#变量命名规则小结

    本文主要介绍了C#变量命名规则小结,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-09
  • c#中(&&,||)与(&,|)的区别详解

    这篇文章主要介绍了c#中(&&,||)与(&,|)的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • C# 中如何取绝对值函数

    本文主要介绍了C# 中取绝对值的函数。具有很好的参考价值。下面跟着小编一起来看下吧...2020-06-25
  • C#绘制曲线图的方法

    这篇文章主要介绍了C#绘制曲线图的方法,以完整实例形式较为详细的分析了C#进行曲线绘制的具体步骤与相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
  • c#自带缓存使用方法 c#移除清理缓存

    这篇文章主要介绍了c#自带缓存使用方法,包括获取数据缓存、设置数据缓存、移除指定数据缓存等方法,需要的朋友可以参考下...2020-06-25
  • C#学习笔记- 随机函数Random()的用法详解

    下面小编就为大家带来一篇C#学习笔记- 随机函数Random()的用法详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-06-25
  • C#中list用法实例

    这篇文章主要介绍了C#中list用法,结合实例形式分析了C#中list排序、运算、转换等常见操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25