by_kapt0xa
@by_kapt0xa
Учу кресты катаюсь на велике

Как упростить синтаксис вызова конструктора в c#?

подскажите пожалуйста как нормальные люди инициализируют объекты в шарпе.
вряд ли же явным образом через new вызывают конструктор, должен быть более изящный способ
внимание на закоментированные строки
struct _8Bools
    {
        public _8Bools(byte val)// конструктор от числа ==========================
        {
            data = val;
        }

        public _8Bools(bool all_vals)// конструктор от bool ===========================
        {
            data = (byte)(all_vals ? 0xff : 0x00);
        }

        public byte data;

        public bool this[byte n]
        {
            get
            {
                return ((1 << n) & data) != 0;
            }
            set
            {
                if (value)
                {
                    data |= (byte)(1 << n);
                }
                else
                {
                    data &= (byte)~(1 << n);
                }
            }
        }

        public void invert_bit(byte n)
        {
            data ^= (byte)(1 << data);
        }

        public void Mirror(byte dimention) //еще не дописано
        {
            _8Bools x = false;  // так не работает, не вызывается конструктор от bool, синтаксическая ошибка ========================
            var y = new _8Bools(false); // а вот так работает, но это выглядит уродтиво ========================
        }
    }

p.s. я больше знаком с C++ чем с C#
  • Вопрос задан
  • 97 просмотров
Решения вопроса 2
VoidVolker
@VoidVolker Куратор тега C#
Dark side eye. А у нас печеньки! А у вас?
Комментировать
вряд ли же явным образом через new вызывают конструктор

В большинстве случаев вызывают явно.


_8Bools x = false;

Для этого тебе нужен оператор неявного приведения типа
https://learn.microsoft.com/en-us/dotnet/csharp/la...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы