LenB替代C#

我有一个程序从VB6移植到C#.它控制工业环境中的各种设备,因此必须创建和计算发送到硬件的消息的字节长度.这些消息由包含许多原始数据类型的结构组成.

最初的VB6代码广泛使用了LenB.我正在考虑在其位置使用System.Runtime.InteropServices.Marshal.SizeOf().这是LenB替代品的好选择吗?

此外,原始程序在一行上使用LenB多个位置,例如,

inputlen = LenB(sequenceBytes) - LenB(headerBytes) - LenB(crcBytes)

用“system.Runtime.InteropServices.Marshal.SizeOf”替换每一个都会产生一条很长的,难以读取的行. C#没有预处理器文本宏,那么是否有某种方法可以使用“using”语句或其他东西来消除所有这些限定符来缩短行?或者应该只写一个方法?

解决方法:

在C#中,此表达式求值为给定Type的大小(以字节为单位):

sizeof(Type)

C# has no preprocessor text macros, so is there some way to use a “using” statement or something to eliminate all those qualifiers to shorten the line? Or should just write a method?

只需在代码文件开头的using子句中添加System.Runtime.InteropServices:

using System.Runtime.InteropServices;

然后你可以直接调用Marshal.SizeOf()而无需命名空间限定.

上一篇:如何将长数组从VB6传递到C#到COM


下一篇:c# – 单步执行.NET Class包装的VB6 COM对象