VB.NET определенно не обладает такой функцией, как эта, поэтому я думаю, что вам лучше всего попытаться уловить «дух» идеи союзов таким образом, который совместим с системой типов .NET.
Отказ от ответственности: я очень мало знаю о С, так что, возможно, я неправильно понимаю, какова цель союзов в С .Если это так, это должно быть очевидно из моего предложения.
Итак, я думаю, что вам, по сути, нужен Structure
, содержащий 64 бита, которые могут представлять либо v5
, либо v6
изваш пример кода C, плюс еще 16 для PageSize
.Что бы я сделал, чтобы сделать это возможным, это сохранить 4 Short
значения и объединить их по мере необходимости (примечание: то, что я набросал ниже, будет неизменным типом; если вам потребуется использование открытых полей для чтения / записи, тогда яЯ в недоумении относительно того, как это можно сделать, если это вообще возможно):
Structure FCRTOP
Private a As Short
Private b As Short
Private c As Short
Private d As Short
Public ReadOnly PageSize As Short
' Possibly two constructors, one accepting PGTR, Short Short, Short, '
' the other accepting Short, Short, Integer, Short '
Public ReadOnly Property V5 As V5
Get
Return New V5(a, b, c, d)
End Get
End Property
Public ReadOnly Property V6 As V6
Get
Return New V5(a, b, c, d)
End Get
End Property
End Structure
Structure V5
' Constructor accepting 4 Short values '
' Properties that expose these values as PGTR, Short, Short'
End Structure
Stucture V6
' Constructor similar to V5 above '
' Properties that expose these values as Short, Short, Integer'
End Structure