相关疑难解决方法(0)

为什么我不能声明继承自Byte的枚举但我可以从byte?

如果我宣布这样的枚举......

public enum MyEnum : byte {
    Val1,
    Val2
}
Run Code Online (Sandbox Code Playgroud)

......它正在发挥作用.

如果我宣布这样的枚举......

public enum MyEnum : System.Byte {
    Val1,
    Val2
}
Run Code Online (Sandbox Code Playgroud)

......它不起作用.编译抛出:

错误CS1008:键入byte,sbyte,short,ushort,int,uint,long或ulong expected

由于byte是实际类型的别名System.Byte,为什么我不能使用第二个声明?

c# compiler-errors

27
推荐指数
3
解决办法
4481
查看次数

在枚举中指定基础类型的用例是什么?

有什么意义

enum SomeEnum : byte // <----
{
  SomeValue = 0x01,
  ...
}
Run Code Online (Sandbox Code Playgroud)

当你必须进行转换只是为了将它分配给与枚举基础类型相同类型的变量?

byte b = (byte)SomeEnum.SomeValue;
Run Code Online (Sandbox Code Playgroud)

c# enums types

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

32位Intel处理器上的内存对齐

Intel的32位处理器(如Pentium)具有64位宽的数据总线,因此每次访问可获取8个字节.基于此,我假设这些处理器在地址总线上发出的物理地址总是8的倍数.

首先,这个结论是否正确?

其次,如果它是正确的,那么应该将数据结构成员对齐在8字节边界上.但我见过人们在这些处理器上使用4字节对齐.

他们怎么能这样做呢?

memory x86 32-bit intel alignment

14
推荐指数
2
解决办法
2万
查看次数

.NET优化的Int32

在阅读70-536培训套件时,它指出:

运行时优化32位整数类型(Int32)的性能,因此将这些类型用于计数器和其他经常访问的整数变量.

这仅适用于32位环境吗?Int64是在64位环境中接管,还是Int32仍然是更好的选择?

.net optimization 64-bit integer

9
推荐指数
2
解决办法
543
查看次数

标签 统计

c# ×2

.net ×1

32-bit ×1

64-bit ×1

alignment ×1

compiler-errors ×1

enums ×1

integer ×1

intel ×1

memory ×1

optimization ×1

types ×1

x86 ×1