为什么80%的码农都做不了架构师?>>>
public:访问不受限制。
protected:访问仅限于包含类或从包含类派生的类型。
Internal:访问仅限于当前程序集。
protected internal:访问限制到当前程序集或从包含派生的类型的类别。
private:访问仅限于包含类型。
abstract 定义抽象类或者抽象方法
async 声明一个异步方法
interface 定一个接口类 (接口可以显示实现或者隐式实现)
const,常量可以为数字、布尔值、字符串或 null 引用。
event 关键字用于在发行者类中声明事件。
extern 定义一个外部方法一般我们用在win32的api 调用中 配合DllImport 导入win32apidll 例如user.dll
(in,out )用在范型interface和delegate中
in 逆变 输入是类型是什么返回可以能不一样类型
out 协变 输入什么类型返回也必须是什么类型 作为参数传递是可以不用先声明变量
ref 作为参数传递是必须先声明变量
override 重写方法 重写的基方法必须是 virtual 、abstract 或 override 的
readonly 字段可以在声明或构造函数中初始化
sealed,当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。
static,使用 static 修饰符声明属于类型本身而不是属于特定对象的静态成员。
virtual,用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写 一般是虚方法
volatile 在线程同步中定义使用
params,可以指定采用数目可变的参数的方法参数。
using 一般用在名称空间中声明,同时也可以用在内存自动释放或者自动回收内中
await,在异步方法应用于任务,以挂起执行方法,直到所等待的任务完成。 这个任务表示正在进行的工作。在其中使用 await 的异步方法必须通过 async 关键字进行修改。使用 async 修饰符定义并且通常包含一个或多个 await 表达式的这类方法称为异步方法。
new 关键字
1. 算符用于创建对象和调用构造函数、创建匿名类型的实例 xx b=new xx();
2. new 关键字可以显式隐藏从基类继承的成员。 隐藏继承的成员时,该成员的派生版本将替换基类版本。 public new override xx()
3.约束指定泛型类声明中的任何类型参数都必须有公共的无参数构造函数 where T:new() 定义无参构造函数类
typeof 获取当前对象的基本类型
nameof 或者成员的基本名称返回string类型
base 调用父类方法或者构造函数
this,引用类的当前实例,还可用作扩展方法的第一个参数的修饰符。
global 全局命名空间:: 该命名空间是任何 C# 程序的默认命名未以其他方式命名。
partial类型,分部类型定义允许将类、结构或接口的定义拆分到多个文件中。
partial方法,在分部类型的一个部分中定义它的签名,并在该类型的另外一个部分中定义它的实现 方法必须返回 void;没有允许的访问修饰符。分部方法是隐式私有的。
where 常用在泛型约束上面