如何在C#中创建不可为空的值类型,如int,bool等?
答案 0 :(得分:51)
是的,这些被称为struct
。
结构是值类型,就像int
,bool
和其他类似。
他们有一些与他们相关的规则/建议:(我认为这些是最重要的)
当不使用ref或out关键字时,传递结构并按值分配结构...这意味着在分配或传递给方法时,您在结构中放置的所有内容都将被复制。这就是为什么你不应该制作大型结构。
您无法在C#
结构体最好是不可变的,并且没有属性设置器。你可以通过制作可变结构来解决真正的麻烦。
可以在Microsoft文档中找到有关结构的其他规则。
至于不可空的引用类型 ...这是不可能。您必须手动检查代码中的空值。
答案 1 :(得分:11)
您可以定义struct:
结构类型是一种值类型,通常用于封装一小组相关变量,例如矩形的坐标或库存中项目的特征。以下示例显示了一个简单的结构声明:
public struct Book { public decimal price; public string title; public string author; }
但是,您无法为int
定义System.Int32
之类的别名,并且需要使用全名MyNamespace.Book
(或Book
与using MyNamespace;
一起引用)你的结构。
答案 2 :(得分:7)
7年后,现在有可能
关于他的更多详细信息会影响此处的代码编写和您现有的代码:
https://praeclarum.org/2018/12/17/nullable-reference-types.html