Это может помочь вам понять, что вы можете сделать ...
function getModify(string) {
return (string=="")?('N/A'):(string);
}
console.log(getww(""));
console.log(getww("ub"));
// Output
// N/A
// ub
C # не поддерживает ' t изначально поддерживает понятие объединений C / C ++. Однако вы можете использовать атрибуты StructLayout (LayoutKind.Explicit) и FieldOffset для создания эквивалентной функциональности. Обратите внимание, что это работает только для примитивных типов, таких как int и float.
using System;
using System.Runtime.InteropServices;
[StructLayout(LayoutKind.Explicit)]
struct byte_array
{
[FieldOffset(0)]
public byte byte1;
[FieldOffset(1)]
public byte byte2;
[FieldOffset(2)]
public byte byte3;
[FieldOffset(3)]
public byte byte4;
[FieldOffset(0)]
public short int1;
[FieldOffset(2)]
public short int2;
}
Используя атрибут StructLayout
, это будет выглядеть примерно так:
[StructLayout(LayoutKind.Explicit, Pack=1)]
public struct ByteArrayUnion
{
#region Byte Fields union
[FieldOffset(0)]
public byte Byte1;
[FieldOffset(1)]
public byte Byte2;
[FieldOffset(2)]
public byte Byte3;
[FieldOffset(3)]
public byte Byte4;
#endregion
#region Int Field union
[FieldOffset(0)]
public int Int1;
[FieldOffset(4)]
public int Int2;
#endregion
}
В вашем вопросе не указано, какова ваша цель. Если вы хотите упорядочить данные для вызова pinvoke, тогда 2 приведенных выше ответа верны.
Если нет, то просто выполните:
class Foo
{
object bar;
public int Bar {get {return (int)bar; } }
...
}