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