You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中声明无主体类的预期用途是什么?

C#无主体类的预期用途

C# 12正式引入了无主体的类(及结构体)声明,这种写法的核心用途主要有两类:

1. 作为标记类型(Marker Class)

这类类不需要任何成员,仅靠类型本身传递语义,常见场景包括:

  • 作为泛型参数的标记,区分不同的逻辑分支
  • 配合自定义特性做标记,标识特定的代码行为
  • 作为空类型载体,用于某些需要占位类型的设计

示例:

// 标记该类型用于订单相关的日志
public class OrderLogMarker;

这种类不需要实例成员,仅靠类型名称就能传递明确的业务或技术语义。

2. 配合主构造函数快速定义极简数据类

你尝试的public class MyClass(int myArg);写法出现警告,是因为没有把构造函数参数转为类的成员。只要给参数加上访问修饰符,编译器就会自动生成对应的属性:

// 自动生成公共的MyArg属性
public class MyClass(public int MyArg);

这种写法比传统的类声明更简洁,适合只需要承载少量数据、不需要额外方法/逻辑的场景——和record class的简化写法类似,但不会自动生成相等性比较、ToString等额外方法,比record更轻量。

补充说明:无主体类默认是非密封、非抽象的,所以你能创建它的实例,但如果类没有任何成员,实例自然没有可调用的属性或方法。

内容的提问来源于stack exchange,提问作者rory.ap

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 07:26:06