Здравствуйте, Аноним, Вы писали:
А>Есть некоторая структура для передачи данных
А>А> [StructLayout(LayoutKind.Explicit)]
А> public struct SomeStruct
А> {
А> [FieldOffset(0)]
А> public byte v1;
А> [FieldOffset(1)]
А> public byte v2;
А> [FieldOffset(2)]
А> public float v3;
А> ......
А> }
А>
А>Допустим некоторые поля типа byte имеют битовые флаги нескольких переменных.(т.е. например v1 содержит 8 переменных).
А>На помощь создается класс SomeStructHelper
А>А> class SomeStructHelper
А> {
А> public static SomeStruct StructData
А> {
А> get
А> {
А> SomeStruct returnStruct;
А> BitArray bit = new BitArray(new bool[] { Bit1, Bit2, Bit3, Bit4, Bit5, Bit6, Bit7, Bit8 });
А> Array array = Array.CreateInstance(typeof(byte), 1);
А> bit.CopyTo(array, 0);
А> returnStruct.v1 = (byte)array.GetValue(0);
А> ..............
А> }
А> set
А> {
А> BitArray bits = new BitArray(new byte[] { value.v1});
А> Bit1 = bits.Get(0);
А> Bit2 = bits.Get(1);
А> ...........
А> }
А> }
А> public static bool Bit1 { get; set; }
А> public static bool Bit2 { get; set; }
А> public static bool Bit3 { get; set; }
А> .....................
А> }
А>
А>Вот вопрос: StructData лучше оставить свойством или желательно сделать два статических метода(Get и Set)?
В данном случае лучше методы. При использовании свойств могут возникнуть некоторые, скажем так, иллюзии.