在Visual Basic 2010中,#define的等效物是什么?

3

我有一行代码需要经常重复,其中我将变量声明为DEV_BROADCAST_HDR并根据系统事件给它赋值。

因为我需要等待事件的发生,所以不能将其声明为全局变量或类似的东西,因此我想知道是否有类似于C++中的#Define的方法:

#Define MyLineOfCode Dim foo As DEV_BROADCAST_HDR = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(DEV_BROADCAST_HDR)), DEV_BROADCAST_HDR)

在Visual Basic 2010中是否可能实现这一点?
2个回答


0
不,这是不可能的。Visual Basic .NET根本没有像C语言的#define那样的东西。你能得到的最接近的就是在编辑器中查找和替换。
考虑使用一个适当的函数。你甚至可以使它成为通用的:
Function StructFromPointer(Of T)(p As IntPtr) As T
    Return DirectCast(Marshal.PtrToStructure(p, GetType(T)), T)
End Function

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接