在C#中创建可空数据类型

3

我有一个数据类型叫做

public enum Gender { Male, Female }

但是有些情况下,我需要将性别的值传递为空。那么我该如何在C#中创建可空性别?


@nasmifive:如果不明确将变量设为可为空,这段代码将无法运行。 - codymanix
@nasmifive:我想Samadhi希望拥有一些类似数据库的行为。在数据库中,您可以有一些字段被“未设置”,即null。我甚至可以想象一些情况,在这些情况下,您可以没有性别,例如警察发现了一些人类遗骸,他们不确定是男性还是女性(这很可怕,但这只是一个例子,其中您可以没有性别)。 - Dmitrii Lobanov
4个回答

8

无论是

Gender? myGender = null;

或者

Nullable<Gender> myGender = null;

第一个变量与第二个完全相同,只是C#语法糖,以方便阅读可空变量。

4

有一个数据类型称为公共枚举Gender = {男性,女性}; 但有些情况下我需要将性别的值传递为空

实际上,在医学上,除了两种性别外,还有更多的性别。无论如何,除了Nullable<Gender>之外,你不需要其他的东西。

Gender.Undefined = 0是有效的,并且根据最佳实践是必需的。实际上,根据.NET枚举编码指南,需要Gender.Nothing


0

以下是如何在 C# 中创建 Nullable 类型的方法

Nullable<Gender>

简而言之:

Gender?

0
如果您的应用程序应该像处理其他性别一样处理“未指定”的性别,则通常可以按照以下方式处理:
public enum Gender
{
  Unspecified,
  Male, 
  Female,
}

请注意,在这种情况下,“未指定”将是枚举的默认值,因为它的值为零/0。因此,当声明一个Gender变量而没有给它赋值时,它将自动变成“未指定”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接