我正在努力学习编写好的 C# 代码,我希望得到您的建议。
例如,如果我有一个小于 255 的无符号数值,则该值适合该byte
类型。但是这个值不会用作字节,而是用作Int
设置组合框索引,因此需要强制转换。
我的问题是,在编写好的 C# 代码时,我有多少需要担心数据类型?我是否需要将此值声明为Int
以避免强制转换?
感谢您的时间。
我正在努力学习编写好的 C# 代码,我希望得到您的建议。
例如,如果我有一个小于 255 的无符号数值,则该值适合该byte
类型。但是这个值不会用作字节,而是用作Int
设置组合框索引,因此需要强制转换。
我的问题是,在编写好的 C# 代码时,我有多少需要担心数据类型?我是否需要将此值声明为Int
以避免强制转换?
感谢您的时间。
投射 from byte
toint
是安全的,因为int
它比 宽byte
,因此不会丢失数据。
但是,如果您将变量定义为byte
但实际上一直将其转换为int
,那么最好只使用它int
,因为您只会混淆您自己和代码的其他读者。
如果你需要它是一个int
,使用一个int
。
数据类型很重要,但代码可读性问题也很重要——必须到处进行转换会降低可读性。
数据类型的设计不应依赖于控件显示(或保存到数据存储)的方式。如果我看到类型属性,byte
那么它会告诉我我的数据类型期望的值范围。例如,类具有类型的Color
自描述属性。R,G,B
byte
也不要进行过早的优化- 如果它成为性能问题(我怀疑从字节转换为整数可能会对系统性能产生重大影响),那么您可以稍后优化问题代码。
顺便说一句,从 byte 转换为 int 是隐式的,因此您无需手动进行:
comboBox.SelectedIndex = myObj.ByteProperty;
答案是肯定的。
当您需要使用不是很大的整数值时,您应该避免使用/转换为任何其他类型,int
除非您有需要。就像您发送此数据的有限带宽一样。
数据类型是良好编码的基础——它允许编译器为你做很多检查,因此有助于消除/突出错误。
在您的示例中,您可以使用 ushort 来存储您的数字,但除非您正在编写一个对内存非常敏感的应用程序,否则最好使用 int ,因为无论如何都需要将参数转换回整数。(由于常量类型转换,这将使您的代码的可读性降低 - 并且效率也可能降低)
凭借我们计算机上当前可用的内存量,当需要在字节或整数之间进行选择时,内存不再是问题。
我要补充一点,int 更容易处理。