相关疑难解决方法(0)

enum变量的默认值是什么

一个枚举变量,任何人都知道它是否总是默认为第一个元素?

.net c# enums

226
推荐指数
3
解决办法
13万
查看次数

C#枚举:可空或"未知"值?

如果我有一个enum成员的类,我希望能够代表没有定义该成员的情况,哪个更好?

a)使用可空类型将该成员声明为类中可为空的.例如:

public SomeEnum? myEnum;
Run Code Online (Sandbox Code Playgroud)

b)在枚举中添加默认的"未知"值.例如:

public enum SomeEnum {
    Unknown,
    SomeValueA,
    SomeValueB,
    SomeValueC,
}
Run Code Online (Sandbox Code Playgroud)

无论如何,我都无法看到任何重大利弊; 但也许一个优于另一个?

c# enums

62
推荐指数
4
解决办法
3万
查看次数

使用null值初始化枚举

如何创建具有空值的枚举

例如:

public enum MyEnum
{
    [StringValue("X")]
    MyX,
    [StringValue("Y")]
    MyY,      
    None
}
Run Code Online (Sandbox Code Playgroud)

其中None值为null或String.Empty

.net c#

10
推荐指数
3
解决办法
3万
查看次数

将Nullable Enum设置为$ null - 这是否真的导致PSInvalidCastException?

在PowerShell中将Nullable Enum设置为$ null会导致System.Management.Automation.PSInvalidCastException异常.这是出乎意料的(至少对我来说).对此有合理的解释吗?下面是一个示例,显示如何设置Nullable Int32是否成功,但设置Nullable Enum会导致异常:

Add-Type @"
public enum ColorEnum
{
    Red = 1,
    Blue = 2,
    Green = 3,
}

public class Thing
{
    public ColorEnum? NullableColor = ColorEnum.Blue;
    public System.Int32? NullableInt = 123;
}
"@

$test = New-Object Thing

# Setting the Nullable Int32 to $null works, as expected.
$test.NullableInt = $null

# Setting the Nullable Enum to $null causes exception.
$test.NullableColor = $null
Run Code Online (Sandbox Code Playgroud)

异常消息显示为:

异常设置"NullableColor":"由于枚举值无效,无法将null转换为类型"ColorEnum".请指定以下枚举值之一并重试.可能的枚举值为"红色,蓝色,绿色".

我希望能够使用Nullable Enum而不是默认值为0的Enum的原因是因为我想要使用的Enum表示可以为空的数据库列,当没有设置有效值时,该列应该为null .我无法更改数据库模型,所以不幸的是,感觉解决方案可能是使用Int32而不是Enum.

还有其他人经历过这个吗?这可能是一个错误吗?

$ PsVersionTable:

Name                           Value                                                                                                                                                                                            
----                           ----- …
Run Code Online (Sandbox Code Playgroud)

.net powershell enums nullable powershell-3.0

7
推荐指数
1
解决办法
480
查看次数

如何在 Enum 中添加和使用 null 值?

请参阅下面的枚举包含两个成员:测试和生产

public enum OTA_HotelInvCountNotifRQTarget
{      
    Test,      
    Production,
}
Run Code Online (Sandbox Code Playgroud)

我正在寻找在上述枚举中添加和使用 Null 值的方法,代码如下:

inv.Target = OTA_HotelInvCountNotifRQTarget.Null; // Not allowed
Run Code Online (Sandbox Code Playgroud)

更新: 我不想NULL在上面的枚举中添加额外的内容,我想使其动态化,因为上面的枚举是自动生成的。并且应该保持不变。

有没有办法在方法本身中实现这一点,即无需在枚举中创建任何Class或添加额外的Enum值?喜欢 :inv.Target = OTA_HotelInvCountNotifRQTarget.Null;

我怎样才能做到这一点?

.net c# enums

4
推荐指数
1
解决办法
1万
查看次数

如何对枚举进行空检查

 public class myclass
    {
        public Details DetailsInfo { get; set; }
        public string name{ get; set; }
        public string Email { get; set; }
        public int subjects{ get; set; }
    }

public enum subjects{
maths,
english,
science,
}
Run Code Online (Sandbox Code Playgroud)

这些科目中有一个是enum.即使我没有为主题输入任何值,它默认为0.这是枚举的行为.有没有办法检查我是否选择了任何主题值.

注意:我不想在枚举中使用任何未定义的值.

c# asp.net enums

1
推荐指数
1
解决办法
3760
查看次数

如何为返回类型为枚举的方法返回null?

我有一个有一些价值观的枚举

public enum CompareOperators
{            
        GreaterThan,
        LessThan,
        GreaterThanEqualTo,
        LessThanEqualTo,
        EqualTo,
        NotEqualTo
}
Run Code Online (Sandbox Code Playgroud)

我有一个方法,它返回此枚举的各种条件

public static CompareOperators GetTypeForOperator(string strType)
{
      switch (strType)
      {
             case "=":
                return CompareOperators.EqualTo;
             case "!=":
                return CompareOperators.NotEqualTo;
             case ">":
                return CompareOperators.GreaterThan;
             case "<":
                return CompareOperators.LessThan;
             case ">=":
                return CompareOperators.GreaterThanEqualTo;
             case "<=":
                return CompareOperators.LessThanEqualTo;
     }
     return null;
}
Run Code Online (Sandbox Code Playgroud)

我在编译时遇到以下错误

Cannot convert null to CompareOperators because it is not a non-nullable value type
Run Code Online (Sandbox Code Playgroud)

nullswitch声明中没有条件满足时返回的最佳方法是什么?

即使我查找了以下问题,我也没有得到解决方案的答案

.net c# enums return-type

0
推荐指数
1
解决办法
2306
查看次数

将空值设置为枚举C#的数组

我有一个枚举类“ Figure”和脚本:

public enum Figure { X, O }

private Figure[,] board = new Figure[boardSize, boardSize];
Run Code Online (Sandbox Code Playgroud)

当板上没有任何值时,我要向板上添加空值。示例: board[0,0] = null-但这是错误的。我该怎么做?

c# arrays

-3
推荐指数
1
解决办法
292
查看次数

标签 统计

c# ×7

enums ×6

.net ×5

arrays ×1

asp.net ×1

nullable ×1

powershell ×1

powershell-3.0 ×1

return-type ×1