首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >X# 3 的新功能:现代 .NET 特性与 .NET 8+ 兼容性

X# 3 的新功能:现代 .NET 特性与 .NET 8+ 兼容性

作者头像
firstxinjie
发布2025-07-08 09:33:33
发布2025-07-08 09:33:33
11000
代码可运行
举报
文章被收录于专栏:X#(XSharp)X#(XSharp)
运行总次数:0
代码可运行

随着 X# 3 的发布日益临近,我们很高兴与大家分享关于 X# 语言及开发平台未来发展方向的一些展望。

尽管 X# 2.24 将是 2.x 系列的最终版本(后续将通过关键 bug 修复提供支持),但我们的重点已转向现代化改造和 .NET 8+ 兼容性。X# 3 旨在填补传统 X# 开发与不断演进的 .NET 生态系统之间的鸿沟。

让我们详细探讨 X# 3 将带来的现代 .NET 功能。

SDK 风格的项目和 NuGet 运行时

X# 3 将全面支持:

  • SDK 风格的 Visual Studio 项目 — 用于针对 .NET 6、7、8 及未来版本。
  • 基于 NuGet 的运行时分发 — X# 运行时库将作为 NuGet 包提供,二进制文件同时支持 .NET Framework 和 .NET 8+。

这使得将 X# 集成到现代 CI/CD 管道和跨平台开发环境中变得更加容易。

X# 3 计划支持的语言特性

X# 编译器正在更新以支持一系列现代 C# 语言特性,为开发人员提供更简洁的语法、更安全的代码以及更好的可维护性。

文件作用域命名空间

减少缩进并简化文件结构。

旧语法

代码语言:javascript
代码运行次数:0
运行
复制
NAMESPACE MyApp.Core
CLASS LOGGER
...
END CLASS
END NAMESPACE

新语法

代码语言:javascript
代码运行次数:0
运行
复制
NAMESPACE MyApp.Core
CLASS LOGGER
...
END CLASS

全局 Using

在整个项目中一次性定义常见的using指令。这可以在单独的源文件中完成,但新的SDK风格项目格式还允许在项目级别属性中声明整个项目的全局using。

代码语言:javascript
代码运行次数:0
运行
复制
// GlobalUsings.prg
global using System
global using MyApp.Common

您还可以在项目文件中定义全局using。构建系统将生成并包含一个包含这些using的源文件。

代码语言:javascript
代码运行次数:0
运行
复制
  <ItemGroup>
    <Using Include="System" />
    <Using Include="System.Collections.Generic" />
    <Using Include="System.Linq" />
  </ItemGroup>

可为 NULL 的引用类型(暂定)

启用编译时启用可为 NULL 检查以防止运行时 NULL 引用异常。我们已经支持可为 NULL 类型的 ? 运算符。

我们还将添加 NULL 值容忍运算符(后缀运算符 !)

代码语言:javascript
代码运行次数:0
运行
复制
#nullable enable
FUNCTION Test ()
LOCAL p as Person?
p := CreatePerson() // 可能返回空值
IF IsValid(p)  // 仅当 p 不为空且 p:Name 不为空时返回 TRUE
? p!:Name   // 感叹号表示我们希望抑制 p 可能为空的警告,因为我们确信这种情况绝不会发生。
ENDIF
RETURN

FUNCTION IsValid(p as Person?)
RETURN p IS NOT NULL .AND. p:Name is NOT NULL

模式匹配增强

更强大的 switch 表达式和类型检测:

ReadOnly 结构体和 Init 访问器

更好地支持数据类型的不可变性。

正在考虑的功能

一些其他 .Net 功能正在评估中,以纳入 X# 3 的未来更新:

  • 顶级语句
  • 记录类型和 with 表达式
  • 原始字符串字面量
  • 异步流
  • 默认接口方法
  • 必需成员
  • 列表模式

这些功能可能会随着编译器和语言基础设施的演进而逐步引入。

可用性和许可

X# 3 将作为编译后的可安装版本仅向订阅者提供。

源代码将保持开源并公开访问。

X# 运行时也将通过 NuGet 包分发。

迎接下一代

X# 3 不仅仅是升级——它是迈向现代 .NET 生态系统的重大飞跃。无论您是在维护遗留代码还是开发新的 .NET 8 应用程序,即将推出的功能都将使您的开发更加快速、安全,并符合行业标准。

敬请期待今年晚些时候的 beta 版本发布!

尚未成为订阅用户?点击此处(https://xsharp.eu/store/shop/Friends-Of-XSharp-Program-One-Year-p301068223)订阅,并使用促销代码 "Summer2025 "可享受七五折优惠。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 xinjie的VFP 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档