在C#中创建不可为空的类型

Nav*_*ani 47 c# non-nullable

如何在C#中创建int,bool等非可空值类型?

Mig*_*elo 53

是的,这些被称为struct.

结构是值类型,就像int,bool等等.

他们有一些与他们相关的规则/建议:(我认为这些是最重要的)

  • 当不使用ref或out关键字时,按值传递和传递结构...这意味着在分配或传递给方法时,将放置在结构中的所有内容.这就是为什么你不应该制作大型结构.

  • 你不能在C#中为结构定义无参数构造函数

  • 结构最好是不可变的,没有属性设置器.你可以通过制作可变的结构来解决真正的麻烦.

其他规则可以在Microsoft文档中找到有关结构的内容.

对于不可空的引用类型 ......这是不可能的.您必须手动检查代码中的空值.


Bri*_*lia 14

7年后,现在有可能

  • 安装包含C#8的.NET Core 3.0。
  • 将.csproj文件的语言版本设置为8.0:8.0。
  • 将属性添加为true(.csproj)

关于他的更多详细信息会影响此处的代码编写和您现有的代码:

https://praeclarum.org/2018/12/17/nullable-reference-types.html

  • 如果该链接离线,您需要添加到 .csproj 文件以启用可为空引用类型的代码是:`<LangVersion>8.0</LangVersion> <NullableReferenceTypes>true</NullableReferenceTypes>` (2认同)

dtb*_*dtb 13

您可以定义结构:

结构类型是一种值类型,通常用于封装一小组相关变量,例如矩形的坐标或库存中项目的特征.以下示例显示了一个简单的结构声明:

public struct Book
{
    public decimal price;
    public string title;
    public string author;
}
Run Code Online (Sandbox Code Playgroud)

但是,你无法定义的别名一样intSystem.Int32,需要参照与全名MyNamespace.Book(或Book使用using MyNamespace;)到你的结构.