Skip to content

C# 13 新特性

2024 年 3 月 25 日 C# 13 正式发布

新的转义序列

你可以使用 \e 作为 ESCAPE 字符 Unicode U+001B 的字符文本转义序列。 以前,你使用的是 \u001b\x1b。 不建议使用 \x1b,因为如果 1b 后面的下一个字符是有效的十六进制数字,则那些字符会成为转义序列的一部分。

方法组自然类型

此功能对涉及方法组的重载解析进行了少量优化。 编译器以前的行为是为方法组构造完整的候选方法集。 如果需要自然类型,则自然类型是根据整套候选方法确定的。

新行为是在每个作用域内削减候选方法集,移除那些不适用的候选方法。 通常情况下,这些是具有错误元数的泛型方法,或未被满足的约束。 仅当未找到候选方法时,此过程才会继续前进到下一个外层作用域。 此过程更紧密地遵循重载决策的一般算法。 如果在给定作用域内找到的所有候选方法都不匹配,则该方法组没有自然类型。

隐式索引访问

对象初始值设定项表达式中现在允许隐式“从末尾开始”索引运算符 ^。 例如,你现在可以在对象初始值设定项中初始化数组,如以下代码所示:

c#
var v = new S()
{
    buffer =
    {
        [^1] = 0,
        [^2] = 1,
        [^3] = 2,
        [^4] = 3,
        [^5] = 4,
        [^6] = 5,
        [^7] = 6,
        [^8] = 7,
        [^9] = 8,
        [^10] = 9
    }
};

在 C# 13 之前的版本中,不能在对象初始值设定项中使用 ^ 运算符。 你需要从前面开始为元素编制索引。

你觉得这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度