用c 做网站在Linux上/知乎怎么申请关键词推广
距离 C# 10 正式发布仅剩两个月,微软开启了关于其 C# 语言第十版的新特性和功能的讨论。这些增强功能是在C# 10.0 Preview 7 中宣布的。
微软将在下一版 C# 10 中实现的功能和改进如下👇
💥 记录类型可以密封 ToString
现在,在 C# 10.0 版本中,您可以在sealed
重写ToString
记录类型时添加修饰符。
密封ToString
方法回避从合成编译一个ToString
方法用于任何派生记录类型。此功能允许您确保所有派生记录类型都使用ToString
在西昌是哪个省公共基本记录类型中定义的方法。
Microsoft建议我们,此功能需要将csproj文件中的<LangVersion>
元素设置为.preview
什么是记录关键字?🤔
如果您不知道我在说什么,这通常用于定义提供用于封装数据的内置功能的引用类型。
一个简单的例子就是你可以使用标准属性语法创建具有不可变属性的记录类型👇
公共记录人(字符串名字,字符串姓氏);
还有什么比微软的一个简单例子更好的理解方式👇
公共记录人
{公共字符串名字{获取;在里面; }公共字符串姓氏 { 获取;在里面; }
};
🏅 文件范围的命名空间声明
您现在可以使用新的命名空间声明形式乒乓球规则来声明所有后续声明的声明都是已声明命名空间的成员👇
命名空间命名空间名称;
这种新语法将在新版本的 C# 10 中实现,将为最常见的命名空间声明节省垂直和水平空间。
什么是命名空间关键字?🤔
为了澄清这一点,namespace
关键字用于声明包含一组相关对象的范围。您可以使用命名空间来组织代码元素并创建全局唯一类型。
命名空间 SampleNamespace
{ class SampleClass { } interface ISampleInterface { } struct SampleStruct { } enum SampleEnum { a, b } 委托无效 SampleDelegate(int i); 命名空间嵌套{ class SampleClass2 { } }
}
当然,但是……
什么是文件范围命名空间声明?🤔
特别是这些声明,允许您声明文件的所有类型,它们位于单个命名空间中。
再深入一点,在这个版本的 C# 10.0 中,螃蟹怎么做好吃这个例子和之前微软已经展示过的例子类似,但是使用了文件作用域命名空间声明👇
使用系统;命名空间 SampleFileScopedNamespace;类 SampleClass { }接口 ISampleInterface { }struct SampleStruct { }枚举 SampleEnum { a, b }委托无效 SampleDelegate(int i);
✨ 常量内插字符串
要了解常量内插字符串,首先我们需要了解字符串内插。
该$
字符将字符串文字标识为内插字符串。内插字符串是可能包含内插表达式的字符串文字。
将内插字符串解析为结果字符串时,带有内插表达式的项将替换为表达式结果的字符串表示形式。
完美,现在我的问题是......
C# 10 中有哪些常量内插字符串?🤔
说到 C# 10.0 版带来的这个新特性就是const
字符串,冻梨的制作方法只有占位符本身是常量字符串,才可以使用字符串插值来初始化。
随着应用程序中使用的常量字符串的构建,字符串插值可以创建更具可读性的常量字符串。占位符表达式不能是数字常量,因为这些常量会在运行时转换为字符串。当前存在的文化可能会影响字符串表示。
🔥 扩展属性模式
首先,我将解释什么是扩展属性模式。这些模式允许您让属性子模式引用嵌套成员,例如:
if (e 是 MethodCallExpression { Method.Name: "MethodName" })
代替:
if (e 是 MethodCallExpression { Method: { Name: "MethodName" } })
既然已经澄清了……
C# 10 中有哪些扩展属性模式?🤔
Microsoft 讨论的下一个功能是可以在属性模式中引用嵌套字段或属性。微软给出的例子是一种形式的模式👇
{ Prop1.Prop2:模式}
微软告诉我们它将在 C# 10.0及更高版本中有效,并且这相当于👇
{ Prop1: { Prop2: 模式 } }
这在 C# 8.0 和所有后续版本中有效
⚡ 同一个解构中的声明和赋值
由新版本实现的这一新变化,允许删除以前版本的 C#的限制。在微软为我们提供了例如在这种情况下是👇
…以前,解构可以将所有值分配给现有变量,或初始化新声明的变量:
// 初始化:
(int x, int y) = point; // 赋值:
int x1 = 0;
int y1 = 0;
(x1, y1) = 点;
这个限制在 C# 10.0 中被取消了👇
整数 x = 0; (x, int y) = 点;
🌐 全局 using 指令
您现在可以将global
修饰符用于任何using 指令。有了这个,您可以告诉编译器该指令必须应用于编译中的所有源文件。
完美,但和以前一样......
什么是 using 指令?🤔
该指令允许您使用在命名空间中定义的类型,而无需指定该类型的整个命名空间。
总而言之,该using
指令从单个命名空间导入所有类型,如下例所示👇
使用 System.Text;
您可以对指令应用两个修饰符using
:
- 该
global
剂具有作为添加相同的效果相同using
指令,每个源文件在您的项目。此修饰符是在 C# 10.0 中引入的。 - 该
static
修改进口static
成员和嵌套类型从单一类型的,而不是在一个命名空间中导入所有类型。
如果您喜欢这篇文章,请不要忘记关注我们,这样您就可以成为第一个阅读 .NET 新内容的人之一。
如果你正在阅读这篇文章,就意味着你属于阅读文章 UNTIL THE END 的那1% 的人,告诉我你每天需要多少咖啡☕才能继续编程,如果我看到很多咖啡 ☕ 我不会感到孤独,你会让我开心!!!😃👍