这两种情况中哪一种最正确?这种情况下仅声明了rxBytes变量?
private void ParseRxData(RxMessage rxMessage) {
List<byte> rxBytes;
rxBytes = rxMessage.LengthBytes;
rxBytes.AddRange(rxMessage.Payload);
/* Do stuff with 'rxBytes' variable */
}
还是在这种情况下实例化了rxBytes变量?
private void ParseRxData(RxMessage rxMessage) {
var rxBytes = new List<byte>;
rxBytes = rxMessage.LengthBytes;
rxBytes.AddRange(rxMessage.Payload);
/* Do stuff with 'rxBytes' variable */
}
简而言之,在声明变量后立即为其赋值时,是否有必要实例化该变量?
我是一个相当新的C#/ OOP程序员,因此,如果我没有正确使用术语,我深表歉意。
简而言之,在声明变量后立即为其赋值时,是否有必要实例化该变量?
否-实际上,如果您初始化rxBytes
为new List<byte>
,然后用覆盖该变量rxMessage.LengthBytes
,那么您创建的列表将永远不会使用,并将被垃圾回收。您似乎为它分配了一个List<byte>
正义,因此您可以使用var
不必要的正义。您的第一个代码块是正确的方法。
你也可以做
var rxBytes = rxMessage.LengthBytes;
但是在功能上,在一行中声明变量与在另一行中为其赋值之间没有区别。
有什么办法设置“按值”等号?
对于引用类型,“值”是一个引用,但是如果您只希望新变量引用列表的副本,则可以执行
var rxBytes = new List<byte>(rxMessage.LengthBytes);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句