相关疑难解决方法(0)

我应该使用int还是Int32

在C#中,int并且Int32是同样的事情,但我读了许多那个时代int优于Int32没有给出理由.有原因,我应该关心吗?

c# variable-types

345
推荐指数
12
解决办法
18万
查看次数

为什么枚举声明接受短而不是Int16

我想声明一个非默认底层类型的新枚举.这有效:

public enum MyEnum : short
{ A, B, C, }
Run Code Online (Sandbox Code Playgroud)

但我不明白为什么这不编译:

public enum MyEnum : System.Int16
{ A, B, C, }
Run Code Online (Sandbox Code Playgroud)

编译说

输入byte,sbyte,short,ushort,int,uint,long或ulong

我知道short是所有.NET版本(包括32/64位版本)的Int16的别名.我不明白为什么编译器在该特定情况下给别名赋予不同的含义.

任何解释?

.net c# enums

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

为什么我不能以ennt关闭UInt16?

鉴于以下代码:

static void Main()
{
    Console.WriteLine(typeof(MyEnum).BaseType.FullName);
}

enum MyEnum : ushort
{
    One = 1,
    Two = 2
}
Run Code Online (Sandbox Code Playgroud)

它输出System.Enum,这意味着这里的冒号与继承无关,它只是指定了枚举的基本类型,对不对?

但是,如果我更改我的代码如下:

enum MyEnum : UInt16
{
    One = 1,
    Two = 2
}
Run Code Online (Sandbox Code Playgroud)

我会得到一个编译错误.为什么?是不是UInt16ushort一样吗?

.net c#

13
推荐指数
2
解决办法
3585
查看次数

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

枚举Int32类型的成员

可能重复:
C#int,Int32和enum

这可能是一个相当基本/简单的问题,我正在通过以下方式创建枚举.

案例1编译完美.但案例2引发了错误.我理解int和Int32在C#中的含义相同.

情况1

    [Flags]
    public enum MyEnum : int
    {
        Red = 0x1,
        Green = 0x2,
        Blue = 0x4
    }
Run Code Online (Sandbox Code Playgroud)

案例2

    [Flags]
    public enum MyEnum : Int32
    {
        Red = 0x1,
        Green = 0x2,
        Blue = 0x4
    }
Run Code Online (Sandbox Code Playgroud)

这里的区别是什么以及当enum的成员被指定为Int32类型时C#不编译代码的原因是什么?

c#

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

为什么这个枚举声明现在有效?

在回答另一个问题时,Jon Skeet提到有一个奇怪的事情正在进行定义enums.他的回答.

他声明,enum只有类型别名而不是框架类型(int有效,Int32不是等)才能重新定义a的基础类型.

public enum Foo : UInt32 {} // Invalid
public enum Bar : uint   {} // Valid
Run Code Online (Sandbox Code Playgroud)

现在我试图重现(在VS2015中使用C#6/Roslyn),我没有得出相同的结论:

public enum TestEnum : UInt32
{

}
Run Code Online (Sandbox Code Playgroud)

public enum MyEnum : uint
{

}
Run Code Online (Sandbox Code Playgroud)

都是完全有效的.为什么会这样?或者改变了什么?


编辑:

所以为了清理事情,这是C#6中的一个变化,尚未记录,并且很快就会记录下来,因为你可以从Roslyn Github上的这个git问题中读到

.net c# enums c#-6.0

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

标签 统计

c# ×6

.net ×4

enums ×2

c#-6.0 ×1

variable-types ×1