优秀的编程知识分享平台

网站首页 > 技术文章 正文

2.6 C#的常用关键字和预定义类型(c#预留关键字)

nanyue 2024-11-12 11:47:41 技术文章 2 ℃

C#的常用关键字和预定义类型

C#是一种强类型的面向对象的编程语言,它提供了一些关键字和预定义类型来帮助开发者编写高效、可读和安全的代码。本文将介绍C#中的一些常用的关键字和预定义类型,以及它们的作用和用法。

关键字

关键字是预定义的保留标识符,对编译器有特殊意义。除非前面有@前缀,否则不能在程序中用作标识符。例如,@if是有效标识符,而if则不是,因为if是关键字1。

C#中有两种类型的关键字:一般关键字和上下文关键字。一般关键字是C#程序任意部分中的保留标识符,上下文关键字仅在一部分程序上下文中有特殊含义,可以在相应上下文范围之外用作标识符1。

一般关键字

以下是C#中的一般关键字1:

关键字

说明

abstract

用于声明抽象类或抽象成员

as

用于执行引用类型或可空类型的安全转换

base

用于访问基类的成员

bool

用于声明布尔值类型

break

用于终止循环或switch语句

byte

用于声明8位无符号整数类型

case

用于标记switch语句中的分支

catch

用于捕获异常

char

用于声明16位Unicode字符类型

checked

用于启用整数算术运算和转换的溢出检查

class

用于声明类

const

用于声明常量

continue

用于跳过循环的当前迭代

decimal

用于声明128位精确十进制值类型

default

用于指定switch语句中的默认分支或指定泛型参数的默认约束

delegate

用于声明委托类型

do

用于声明后测试循环语句

double

用于声明64位浮点值类型

else

用于指定if语句中的备选分支

enum

用于声明枚举类型

event

用于声明事件

explicit

用于声明用户定义的显式转换运算符或指定泛型参数的显式约束

extern

用于声明外部方法

false

用于表示布尔值false

finally

用于指定无论是否发生异常都要执行的代码块

fixed

用于防止指针移动或修改被固定变量所引用的对象

float

用于声明32位浮点值类型,也称为单精度浮点类型

for

用于声明前测试计数循环语句

foreach

用于声明遍历集合中每个元素的循环语句

goto

用于无条件转移到程序中指定位置的语句

if

用于声明条件语句

implicit

用于声明用户定义的隐式转换运算符或指定泛型参数的隐式约束

in

用于指定泛型参数是逆变的、foreach语句中集合元素的别名或查询表达式

关键字

说明

int

用于声明32位有符号整数类型

interface

用于声明接口

internal

用于指定类型或成员的可访问性为当前程序集内部

is

用于检查对象是否与给定类型兼容

lock

用于获取给定对象的互斥锁,以便同步多线程访问

long

用于声明64位有符号整数类型

namespace

用于声明命名空间

new

用于创建对象或委托的实例,或指定泛型参数的新约束

null

用于表示空引用或可空值类型的无值状态

object

用于声明通用引用类型,是所有类型的基类

operator

用于声明用户定义的运算符

out

用于指定参数是按引用传递的、泛型参数是协变的或查询表达式的返回值

override

用于修改虚方法、属性、索引器或事件的实现

params

用于指定方法参数可以接受可变数量的实参

private

用于指定类型或成员的可访问性为当前类或结构内部

protected

用于指定类型或成员的可访问性为当前类或结构及其派生类内部

public

用于指定类型或成员的可访问性为任何位置

readonly

用于声明只读字段或只读属性

ref

用于指定参数是按引用传递的、返回值是按引用返回的或只读引用局部变量

return

用于从方法返回值或结束方法执行

sbyte

用于声明8位有符号整数类型

sealed

用于防止类被继承或虚成员被重写

short

用于声明16位有符号整数类型

sizeof

用于获取值类型占用的字节数

stackalloc

用于在堆栈上分配内存块

static

用于声明静态类或静态成员

关键字

说明

string

用于声明字符串类型,表示Unicode字符序列

struct

用于声明结构类型,表示值类型

switch

用于选择多个分支中的一个执行

this

用于引用当前实例或扩展方法中的第一个参数

throw

用于引发异常或重新引发当前异常

true

用于表示布尔值true

try

用于定义可能发生异常的代码块和处理异常的代码块

typeof

用于获取表示类型的Type对象

uint

用于声明32位无符号整数类型

ulong

用于声明64位无符号整数类型

unchecked

用于禁用整数算术运算和转换的溢出检查

unsafe

用于声明不安全的上下文,可以使用指针

ushort

用于声明16位无符号整数类型

using

用于引入命名空间或类型的别名,或指定可释放对象的范围

virtual

用于声明虚方法、属性、索引器或事件,可以在派生类中重写

void

用于指定方法不返回值或指定指针指向未指定类型的内存

volatile

用于声明字段可以由多个线程同时修改

while

用于声明前测试条件循环语句

上下文关键字

以下是C#中的上下文关键字:

关键字

说明

add

用于自定义事件的访问器

alias

用于在extern别名中引入外部程序集

and

用于在模式匹配中表示逻辑与操作

ascending

用于在查询表达式中指定升序排序

args

用于在lambda表达式中表示参数列表

async

用于声明异步方法或lambda表达式

await

用于等待异步任务完成并提取结果

by

用于在查询表达式中指定分组依据或排序依据

descending

用于在查询表达式中指定降序排序

dynamic

用于声明动态类型,表示运行时确定类型

equals

用于在查询表达式中指定相等比较

from

用于在查询表达式中指定数据源和范围变量

get

用于自定义属性或索引器的访问器

global

用于访问全局命名空间,避免与局部命名空间冲突

group

用于在查询表达式中指定分组操作

init

用于自定义属性或索引器的初始化器,只能在对象初始化期间赋值一次

into

用于在查询表达式中创建临时范围变量或执行连接操作

关键字

说明

join

用于在查询表达式中指定连接操作

let

用于在查询表达式中引入新的范围变量

managed

用于指定函数指针调用约定为托管的

nameof

用于获取标识符的名称

nint

用于声明本机大小的有符号整数类型

not

用于在模式匹配中表示逻辑非操作

notnull

用于在模式匹配中表示非空约束

nuint

用于声明本机大小的无符号整数类型

on

用于在查询表达式中指定连接条件

or

用于在模式匹配中表示逻辑或操作

orderby

用于在查询表达式中指定排序操作

partial

用于声明部分类或部分方法,可以在多个文件中定义

record

用于声明记录类型,表示不可变的值类型

remove

用于自定义事件的访问器

select

用于在查询表达式中指定投影操作

set

用于自定义属性或索引器的访问器

unmanaged

用于指定函数指针调用约定为非托管的或泛型参数的非托管约束

value

用于表示属性或索引器的值或匿名函数的返回值

var

用于声明隐式类型的局部变量或范围变量

when

用于在switch语句中指定筛选条件或在catch子句中指定异常筛选器

where

用于在查询表达式中指定过滤条件或泛型参数的约束条件

with

用于创建记录类型的副本并修改部分属性值

yield

用于从迭代器方法返回值

预定义类型

C#提供了一些预定义类型,它们是.NET库中的类型的别名,可以直接使用而无需引入命名空间。以下是C#中的预定义类型:

值类型

值类型是直接存储数据的类型,而不是存储对数据的引用。值类型包括以下几种:

  • 整型数值类型:表示整数,有符号和无符号,不同的位数。例如:int, long, byte, uint等。
  • 浮点数值类型:表示小数,有不同的精度和范围。例如:float, double, decimal等。
  • 布尔类型:表示真或假,只有两个可能的值。例如:bool。
  • 字符类型:表示单个Unicode字符,使用单引号括起来。例如:char。
  • 枚举类型:表示一组命名的常数,可以使用enum关键字定义。例如:enum Color { Red, Green, Blue }。
  • 结构类型:表示自定义的值类型,可以包含多个字段和方法,可以使用struct关键字定义。例如:struct Point { public int X; public int Y; }。
  • 元组类型:表示一组有限数量的有序元素,可以使用圆括号和逗号分隔元素定义。例如:(int, string) t = (1, “hello”)。

引用类型

引用类型是存储对数据的引用(地址)的类型,而不是直接存储数据。引用类型包括以下几种:

  • 对象类型:表示任何类型的数据,是所有类型的基类,可以使用object关键字或System.Object类名表示。例如:object o = “hello”。
  • 字符串类型:表示Unicode字符序列,是不可变的引用类型,可以使用string关键字或System.String类名表示。例如:string s = “hello”。
  • 委托类型:表示对具有特定参数列表和返回类型的方法的引用,可以使用delegate关键字或System.Delegate类名表示。例如:delegate void Action();。
    • 动态类型:表示在运行时确定类型的数据,可以使用dynamic关键字或System.Object类名表示。例如:dynamic d = 1; d = “hello”。
    • 接口类型:表示一组抽象的成员,可以由其他类型实现,可以使用interface关键字定义。例如:interface IDisposable { void Dispose(); }。
    • 数组类型:表示一维或多维的同类型元素的集合,可以使用方括号和逗号分隔维度定义。例如:int[] a = new int[10]; int[,] b = new int[3, 4];。
    • 集合类型:表示一组不同类型的元素的集合,可以使用泛型或非泛型的类或接口表示。例如:List<int> list = new List<int>(); ArrayList array = new ArrayList();。
    • 类类型:表示自定义的引用类型,可以包含多个字段、属性、方法、事件等,可以使用class关键字定义。例如:class Person { public string Name { get; set; } public int Age { get; set; } }。
    • 记录类型:表示不可变的引用类型,可以包含多个字段、属性、方法等,可以使用record关键字定义。例如:record Student (string Name, int Age);。

总结

本文介绍了C#中的一些常用的关键字和预定义类型,以及它们的作用和用法。关键字是编译器识别的保留标识符,预定义类型是.NET库中的类型的别名。了解这些关键字和预定义类型有助于编写高效、可读和安全的C#代码。

Tags:

最近发表
标签列表