C#中的关键字

关键字是对编译器具有特殊意义的预定义保留标识符。它们不能在程序中用作标识符,除非它们有一个 @ 前缀。例如,@if 是有效的标识符,但 if 不是,因为 if 是关键字。

下面是列出的所有的关键字在 C# 程序的任何部分都是保留标识符:

abstract

as

base

bool

break

byte

case

catch

char

checked

class

const

continue

decimal

default

delegate

do

double

else

enum

event

explicit

extern

False

finally

static

float

for

foreach

goto

if

implicit

in

in(泛型修饰符)

int

interface

internal

is

lock

long

namespace

new

null

object

operator

out

out(泛型修饰符)

override

params

private

protected

public

readonly

ref

return

sbyte

sealed

short

sizeof

stackalloc

static

string

struct

switch

this

throw

True

try

typeof

uint

ulong

unchecked

unsafe

ushort

using

virtual

void

volatile

while

修饰符(C# 参考)

修饰符用于修改类型和类型成员的声明。 本节介绍 C# 修饰符:

修饰符

用途

访问修饰符

指定声明的类型和类型成员的可访问性。

Public:类型与类型成员的访问修饰符,公共访问是允许访问的最高级别

Private:私有访问是允许访问的最低级别,只能在声明它们的类或结构体中访问

Internal:只有在同一程序集中才可以访问

Protected:受保护成员可在其所在的类与派生类访问

abstract

在类中使用adstract指示某个类只能是其他类的基类。不可被实例化,用途是派生出其他非抽象类.当从抽象类派生非抽象类时,这些非抽象类必须具体实现所继承的所有抽象成员,从而重写那些抽象成员(对抽象方法的重写必用override,虚方法的关键字virtual,对虚方法的重写也要用override)。

const

指定无法修改字段或局部变量的值。声明常量的关键字

event

声明事件。常与委托(delegate)一起使用

extern

指示在外部实现方法。

new

New 运算符:用于创建对象和调用构造函数。

New 修饰符:用于向基类成员隐藏继承成员。

override

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

partial

在整个同一程序集中定义分部类、结构和方法。分部类型定义允许将类、结构或接口的定义拆分到多个文件中。

readonly

声明一个字段,该字段只能赋值为该声明的一部分或者在同一个类的构造函数中。

sealed

指定类不能被继承。密封类关键字,密封类不能被继承(不想让其它类继承可以声明为密封类)

static

静态成员的关键字,静态成员可以直接通过类来调用(在动静态调用都可以),动态成员必需通过对象来调用

unsafe

声明不安全的上下文。Unsafe static void test(){}

Unsafe{  }

virtual

虚方法的关键字,不含方法实现,用override对其实现,不含startic(多用于多态性)

volatile

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

volatile 修饰符通常用于由多个线程访问但不使用 lock 语句对访问进行序列化的字段。

语句关键字(C# 参考)

语句是程序指令。 除了下表中引用的主题中介绍的以外,语句都是按照顺序执行的。 下表列出了 C# 语句关键字。 有关不用任何关键字表示的语句的更多信息,请参见语句(C# 编程指南)

类别

C# 关键字

选择语句

ifelseswitchcase

迭代语句

doforforeachinwhile

跳转语句

breakcontinuedefaultgoto,returnyield

异常处理语句

throwtry-catchtry-finallytry-catch-finally

检查和未检查

checkedunchecked

fixed 语句

fixed

lock 语句

lock

命名空间关键字(C# 参考)

本节描述与 using 命名空间关联的关键字和运算符:

Operator Keywords (C# Reference)

用于执行杂项操作,例如创建对象,检查对象的运行时类型,获取类型的大小,等等。 本节介绍下列关键字:

  • as   将对象转换为可兼容类型。
  • is   检查对象的运行时类型。
  • new
  • sizeof   获取类型的大小。
  • typeof   获取类型的 System.Type 对象。
  • true   
    • true 运算符   返回布尔值 true 表示真,否则返回 false。
    • true   表示布尔值 true。
  • false   
    • false 运算符   返回布尔值 true 表示假,否则返回 false。
    • false   表示布尔值 false。
  • stackalloc   在堆栈上分配内存块。

语句一节中介绍了下列可用作运算符和语句的关键字:

  • checked   指定已检查的上下文。
  • unchecked   指定未检查的上下文。

Conversion Keywords (C# Reference)

本节描述在类型转换中使用的关键字:

访问关键字(C# 参考)

本节介绍下列访问关键字:

访问基类的成员。

引用类的当前实例。

文字关键字(C# 参考)

上下文关键字(C# 参考)

上下文关键字用于提供代码中的特定含义,但它不是 C# 中的保留字。本节介绍下面这些上下文关键字:

关键字

说明

add

定义一个自定义事件访问器,客户端代码订阅事件时将调用该访问器。

dynamic

定义一个引用类型,实现发生绕过编译时类型检查的操作。

get

为属性或索引器定义访问器方法。

global

指定未以其他方式命名的默认全局命名空间。

Partial — 部分

在整个同一编译单元内定义分部类、结构和接口。

remove

定义一个自定义事件访问器,客户端代码取消订阅事件时将调用该访问器。

set

为属性或索引器定义访问器方法。

value

用于设置访问器和添加或移除事件处理程序。

var

使编译器能够确定在方法作用域中声明的变量的类型。

where

将约束添加到泛型声明。(另请参见where)。

yield

在迭代器块中使用,用于向枚举数对象返回值或发信号结束迭代。

C# 3.0 中引入的所有查询关键字也都是上下文相关的。有关更多信息,

查询关键字(C# 参考)

本节包含查询表达式中使用的上下文关键字。

  本节内容

子句

说明

from

指定数据源和范围变量(类似于迭代变量)。

where

根据一个或多个由逻辑“与”和逻辑“或”运算符(&& 或 ||)分隔的布尔表达式筛选源元素。

select

指定当执行查询时返回的序列中的元素将具有的类型和形式。

group

按照指定的键值对查询结果进行分组。

into

提供一个标识符,它可以充当对 join、group 或 select 子句的结果的引用。

orderby

基于元素类型的默认比较器按升序或降序对查询结果进行排序。

join

基于两个指定匹配条件之间的相等比较来联接两个数据源。

let

引入一个用于存储查询表达式中的子表达式结果的范围变量。

in

join 子句中的上下文关键字。

on

join 子句中的上下文关键字。

equals

join 子句中的上下文关键字。

by

group 子句中的上下文关键字。

ascending

orderby 子句中的上下文关键字。

descending

orderby 子句中的上下文关键字。

【C#学习笔记之一】C#中的关键字的更多相关文章

  1. 并发编程学习笔记(4)----jdk5中提供的原子类及Lock使用及原理

    (1)jdk中原子类的使用: jdk5中提供了很多原子类,它会使变量的操作变成原子性的. 原子性:原子性指的是一个操作是不可中断的,即使是在多个线程一起操作的情况下,一个操作一旦开始,就不会被其他线程 ...

  2. Web安全学习笔记 SQL注入中

    Web安全学习笔记 SQL注入中 繁枝插云欣 --ICML8 权限提升 数据库检测 绕过技巧 一.权限提升 1. UDF提权 UDF User Defined Function,用户自定义函数 是My ...

  3. [学习笔记] 在Eclipse中导入项目

    参考前文:[学习笔记] 在Eclips 中导出项目 选择已经导出的文件: 导入之后,项目结构如下: 至此,完成.

  4. CockroachDB学习笔记——[译]CockroachDB中的SQL:映射表中数据到键值存储

    CockroachDB学习笔记--[译]CockroachDB中的SQL:映射表中数据到键值存储 原文标题:SQL in CockroachDB: Mapping Table Data to Key- ...

  5. [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar中的类解压后放在运行jar中

    前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中 使用7z打开压缩包,查看所有依赖的jar都被解压以包名及class的方式存储在了运行jar中,此时jar的 ...

  6. [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar打在jar包中

    本文需要参考前文: [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中 上文是导出的运行的依赖jar被放在了子目录中,本文是将依赖jar放在可运行jar的本身,这样发布的 ...

  7. [学习笔记] 在Eclipse中导出可以直接运行的jar,依赖的jar在子目录中

    工程创建可参考前文: [学习笔记] 在Eclipse中使用Hibernate,并创建第一个工程,数据库为Oracle XE 在工程上鼠标右键: 找到java 选择 Runable JAR file N ...

  8. Backbone学习笔记一Backbone中的MVC

    原文章地址http://bigdots.github.io/2015/12/01/Backbone学习笔记(一)/#more Backbone.js为复杂WEB应用程序提供模型(models).集合( ...

  9. vue学习笔记(九)vue-cli中的组件通信

    前言 在上一篇博客vue学习笔记(八)组件校验&通信中,我们学会了vue中组件的校验和父组件向子组件传递信息以及子组件通知父组件(父子组件通信),上一篇博客也提到那是对组件内容的刚刚开始,而本 ...

  10. [学习笔记] 在Eclipse中添加用户库 Add User Libraries ,在项目中引用用户库

    如果还没有安装Eclipse, 则请参考前文:  [学习笔记] 下载.安装.启动 Eclipse(OEPE) 添加用户库 本文主要介绍在项目中直接使用第三方库的情况.就是把第三方的jar文件直接放到某 ...

随机推荐

  1. Android快速实现上传项目到Github

    本文为skylinelin原创,转载请注明出处! 一.简介 现在在网上浏览关于Git的文章,基本上都是使用命令行(Git Bash),命令行效率是很高的,但是有一定的复杂性,现在我们看如何用AS来讲项 ...

  2. 服务器端语言go之开篇分享

    由于之前看过其他脚本语言,此时看服务器端语言go语法时也短短用了半天的时间,如图1所示,是个人学习go语法的目录截图,学习网址:菜鸟网站,为了个人方便学习和记忆,因此写下本篇文章,在本篇文章里我主要是 ...

  3. 利用jquery实现电商网站常用特效之:五星评分

    这篇文章主要为大家详细介绍了基于jquery实现五星好评,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 在电商网站,我们经常会用到五星评分的功能,现在用jQuery实现一个简单的demo: 1.引 ...

  4. Xftp连接阿里云Linux,向Linux上传文件,Windows和Linux文件传输

    我之前是用SecureCRT连接阿里云Linux的,上传文件用的Alt+p快捷键,感觉不是很方便.后来朋友给我推荐了Xshell,感觉确实好用得很多. 传输文件用的是Xftp,今天在向我的个人网站发布 ...

  5. MySQL数据库入门(建库和建表)--陈远波

    建库.建表 1.建库 (1)SQL语句命令建库: Create database数据库名称  (该方法创建的数据库没有设置编码乱码) 1 2 3 4 5 -- 创建数据库时,设置数据库的编码方式 -- ...

  6. 系统内置委托:Func/Action

    lSystem.Func 代表有返回类型的委托 lpublic delegate TResult  Func<out TResult>(); lpublic delegate TResul ...

  7. C# (类型、对象、线程栈和托管堆)在运行时的相互关系

    在介绍运行时的关系之前,先从一些计算机基础只是入手,如下图: 该图展示了已加载CLR的一个windows进程,该进程可能有多个线程,线程创建时会分配到1MB的栈空间.栈空间用于向方法传递实参,方法定义 ...

  8. 【算法设计与分析基础】24、kruskal算法详解

    首先我们获取这个图 根据这个图我们可以得到对应的二维矩阵图数据 根据kruskal算法的思想,首先提取所有的边,然后把所有的边进行排序 思路就是把这些边按照从小到大的顺序组装,至于如何组装 这里用到并 ...

  9. 原来你是这样的JAVA[02]-包、传参、构造器

    一.包(package) 在java程序中,一个java源文件称为编译单元,以.java后缀命名.编译单元内可以有一个public类,类名必须与文件名相同.注意:每个编译单元只能有一个public类. ...

  10. Kill 进程

      动态杀各种进程,谨慎操作:事例 status='sleeping'   --AUTHOR      KiNg --DATE        2016-05-30 DECLARE @SPID INT ...