Open KyouyamaKazusa0805 opened 2 years ago
本 issue 作为 To-do 列表使用,呈现出所有我们需要讲解的 C# 的新的语法的用法。
bool
switch
#pragma warning
Task
foreach
catch when
catch
finally
await
null
??
?.
?[]
nameof
C# 7 版本的语法发布情况比较特殊,分为 C# 7.0、C# 7.1、C# 7.2 和 C# 7.3 四个小版本。一般我们不区分大版本和小版本,但因为 C# 7.0 情况的特殊性,我把特性全部按照小版本分组列出来。
out
ref
async
throw
default
T is
ref struct
Span
in
readonly
private protected
Enum
Delegate
unmanaged
stackalloc
fixed
await foreach
await using
using
??=
static
struct
$@""
@$""
[Obsolete]
is null
t is null
record
with
init
and
or
not
case T _
case T
nint
nuint
.localsinit
[SkipLocalsInit]
new
[ModuleInitializer]
GetEnumerator
partial
T?
record struct
sealed record ToString
[AsyncMethodBuilder]
#line
[CallerArgumentExpression]
@
[_, ..]
[1, 2, 3]
"""
required
scoped
string* p = &s;
checked
>>>
>>>=
ReadOnlySpan<char>
u8
U8
file
IntPtr
Span<T>
params
field
本 issue 作为 To-do 列表使用,呈现出所有我们需要讲解的 C# 的新的语法的用法。
bool
类型实例的switch
语句用法(084)#pragma warning
警告禁用指令(086)Task
foreach
循环迭代变量的行为修改C# 6 语法
catch when
从句catch
和finally
块里使用await
语句catch
/finally
Blocksnull
条件和null
传播运算符??
、?.
和?[]
nameof
表达式nameof
OperatorC# 7 语法
C# 7 版本的语法发布情况比较特殊,分为 C# 7.0、C# 7.1、C# 7.2 和 C# 7.3 四个小版本。一般我们不区分大版本和小版本,但因为 C# 7.0 情况的特殊性,我把特性全部按照小版本分组列出来。
out
变量内联声明out
Variablesref
返回值和临时变量ref
Returns & Localsasync
Return Typesthrow
表达式throw
Expressionsasync
主方法async
Maindefault
隐式类型表达式default
ExpressionsT is
ref struct
类型Span
andref
-like Typesin
参数和readonly
引用in
Parameters &readonly
Referencesref
条件表达式ref
Conditionalprivate protected
访问级别private protected
AccessibilityEnum
、Delegate
和unmanaged
泛型约束Enum
,Delegate
&unmanaged
Constraintsref
临时变量的重新赋值ref
Locals Re-assignmentstackalloc
初始化器stackalloc
Initializersfixed
Buffersfixed
语句固定对象fixed
StatementC# 8 语法
async
Streamsawait foreach
、await using
using
变量声明增强using
null
合并赋值null
-coalescing Assignment??=
static
Local Functionsstruct
sreadonly
Membersstackalloc
表达式stackalloc
in Nested Contexts$@""
、@$""
均可[Obsolete]
用于属性访问器is null
匹配t is null
on Unconstrainted Type ParameterC# 9 语法
record
swith
表达式with
Expressionsinit
-only Settersand
、or
和not
switch
语句的类型模式switch
Statementscase T _
改成case T
nint
和nuint
.localsinit
指令.localsinit
Flag[SkipLocalsInit]
特性的使用new
表达式new
Expressionsstatic
Anonymous Functions & Lambdas[ModuleInitializer]
特性的使用foreach
循环GetEnumerator
partial
Methods with Returned ValuesT?
和default
泛型约束C# 10 语法
record struct
swith
表达式with
Expressions onstruct
ssealed record ToString
sealed record ToString
[AsyncMethodBuilder]
[AsyncMethodBuilder]
#line
指令对列对齐的支持#line
Span Directivestruct
Constructors[CallerArgumentExpression]
C# 11 语法
@
记号[_, ..]
、[1, 2, 3]
之类的模式匹配规则"""
以及更多双引号序列表示default
Structuresrequired
关键字nameof
范围拓展nameof
nameof
使用ref
字段ref struct
定义引用字段、scoped
关键字string* p = &s;
的语法对托管类型使用指针checked
运算符重载>>>
和>>>=
运算符ReadOnlySpan<char>
匹配ReadOnlySpan<char>
ReadOnlySpan<char>
字符序列u8
或U8
后缀定义 UTF8 编码的字符串file
关键字IntPtr
C# 12 语法(动态更新)
nameof
表达式nameof
accessing instance membersSpan<T>
可用params
修饰符,及任何类型的stackalloc
表达式field
关键字