[英]Choosing the right data type vs casting
我正在努力学习编写好的C#代码,我想要你的建议。
如果我有一个小于255的无符号数值,那么这个值适合byte
类型。 但是这个值不会用作byte,而是用作Int
来设置组合框索引,因此需要进行转换。
我的问题是在编写好的C#代码时我有多担心数据类型? 我是否需要将此值声明为Int
以避免强制转换?
感谢您的时间。
从byte
到int
是安全的,因为int
比byte
宽,所以不可能丢失数据。
但是,如果您将变量定义为byte
但实际上一直将其转换为int
,那么最好将其设置为int
,因为您只会让自己和代码的其他读者感到困惑。
如果需要它是一个int
,请使用int
。
数据类型很重要,但代码可读性问题也是如此 - 必须在整个地方进行转换会降低可读性。
数据类型的设计不应该取决于它们如何通过控件显示(或保存到数据存储)。 如果我看到byte
类型的属性,它会告诉我数据类型所期望的值的范围。 例如, Color
类具有类型为byte
自描述属性R,G,B
。
也不要做过早的优化 - 如果它成为性能问题(我怀疑从byte到int的转换会对系统性能产生很大影响)那么你可以稍后优化问题代码。
从字节到int的BTW转换是隐式的,因此您不需要手动执行:
comboBox.SelectedIndex = myObj.ByteProperty;
答案是肯定的 。
当你需要使用不是很大的整数值时,你应该避免使用/强制转换为任何其他类型的int
除非你有需要。 就像您发送此数据的有限带宽一样。
数据类型是良好编码的基础 - 它允许编译器为您做很多检查,因此有助于消除/突出错误。
在您的示例中,您可以使用ushort来存储您的数字,但除非您正在编写对内存敏感的应用程序,否则最好使用int,因为无论如何,许多库调用都需要将参数转换回整数。 (由于常量类型转换,这会降低您的代码的可读性 - 并且可能效率也会降低)
利用我们计算机上当前可用的内存量,当需要在byte或int之间进行选择时,内存不再是问题。
我想补充说int更容易处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.