首页 新闻 会员 周边

C# 数据类型使用场景

0
悬赏园豆:5 [已解决问题] 解决于 2019-12-26 10:11

写代码时,只要是整数类型,几乎都用的int。
我想问下,如果我有个变量,因为业务需要,这个变量只会存储0-3,之间的值。该用什么类型?

Mad_Rabbit的主页 Mad_Rabbit | 菜鸟二级 | 园豆:307
提问于:2019-12-26 09:40
< >
分享
最佳答案
0

byte

收获园豆:5
Timetombs | 老鸟四级 |园豆:3954 | 2019-12-26 09:44

能和我说说为什么吗?

Mad_Rabbit | 园豆:307 (菜鸟二级) | 2019-12-26 09:55

@Mad_Rabbit: byte 范围0-255,占1个字节,int是4个字节。byte是最节约存储空间的。

Timetombs | 园豆:3954 (老鸟四级) | 2019-12-26 10:01

@blackheart: 多谢

Mad_Rabbit | 园豆:307 (菜鸟二级) | 2019-12-26 10:03
其他回答(3)
0

枚举,0-3一共四个值,显然枚举的可读性更好一些

拓拓 | 园豆:1050 (小虾三级) | 2019-12-26 09:46

能写点代码吗?这个枚举是什么样子的?

支持(0) 反对(0) Mad_Rabbit | 园豆:307 (菜鸟二级) | 2019-12-26 09:54

枚举实际就是 int

支持(0) 反对(0) dudu | 园豆:30994 (高人七级) | 2019-12-26 09:57

@dudu: 能写几行代码吗?

支持(0) 反对(0) Mad_Rabbit | 园豆:307 (菜鸟二级) | 2019-12-26 10:03
0

如果不是嵌入式开发为啥会有这个考虑呢,又不需要对内存斤斤计较,我一律用int...以后扩展了也好扩展,

猝不及防 | 园豆:2781 (老鸟四级) | 2019-12-26 09:48

如果我想声明变量,存储端口号,你应该也会用int对吧。

支持(0) 反对(0) Mad_Rabbit | 园豆:307 (菜鸟二级) | 2019-12-26 09:52

@Mad_Rabbit:
参考微软

public enum KeyboardEventFlags : uint
{
    KEYEVENTF_EXTENDEDKEY = 0x0001,
    KEYEVENTF_KEYUP = 0x0002,
    KEYEVENTF_UNICODE = 0x0004,
    KEYEVENTF_SCANCODE = 0x0008
}

public enum HRESULT : long
{
    S_FALSE = 1,
    S_OK = 0,
    E_INVALIDARG = 0x80070057,
    E_OUTOFMEMORY = 0x8007000E
}

老实说我真的会static int

支持(0) 反对(0) 猝不及防 | 园豆:2781 (老鸟四级) | 2019-12-26 09:57

@猝不及防: 我也会用int port,然后在别的地方使用时,判断port<0或者>65535什么的。最近我看到有人用ushort,ushort取值0-65535,根本就不需要判断边界。忽然发现对数据结构并不了解,从来没有考虑过这些

支持(0) 反对(0) Mad_Rabbit | 园豆:307 (菜鸟二级) | 2019-12-26 10:09
0

用 byte

byte b = 3;

或者 BitArray

var bits = new BitArray(2);
bits[0] = true;
bits[1] = true;
dudu | 园豆:30994 (高人七级) | 2019-12-26 09:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册