• Почему нельзя писать поле в интерфейсе?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Потому что интерфейс, по идее, не содержит внутри себя никаких данных - только список методов.
    Поэтому полей в интерфейсе нет. А свойства - это не поля, это упрощенный синитаксис для вызова методов-аксессоров: метода получения связанного с объектом значения и (если реализовано) его установки. Поэтому ничто не мешает интерфейсу их содержать.
    PS Автоматически реализуемое свойство объекта - типа того, что вы написали в начале - оно только внешне похоже на описание свойства в интерфейсе. В интерфейсе пустые тела аксессоров (так же, как и других методов) означают, что наследующий этот интерфейс класс обязан их реализовать. А автоматически реализуемое свойство объекта - это синтаксический сахар, скрывающий от глаз реализацию: автоматически создаваемое компилятором поле с простейшими аксессорами - прочитать поле и записать в поле.
    Ответ написан
    Комментировать
  • В чем различие между делегатоми и событиями?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Событие (event) - это синтаксический сахар, которым посыпан механизм вызова одного или несколких методов на основе базового для всех делегатов встроенного типа Delegate (вызов нескольких методов реализует класс MulticastDelegate, унаследованный от Delegate) Компилятор же, встретив ключевое слово event, создает переменную-делегат указанного типа с тем же именем (далее ИмяСобытия), доступную только внутри класса (т.е. private) и два метода: add_ИмяСобытия и remove_ИмяСобытия. А встретив операторы += и -= для подписки/отписки вызывает соответсвующий метод. Подробнее можно посмотреть в главе 11 книги Джеффри Рихтера "CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C#".
    Вызывать несколько методов можно и через один делегат - см. пример в справке для класса MulticastDelegate.
    Ответ написан
    Комментировать
  • Как составить запрос к нескольким таблицам?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Используйте UNION для объединения результатов запросов к каждой из таблиц: да, надо написать все десять запосов с UNION между ними. Подробности - https://www.postgresql.org/docs/current/queries-un...
    PS Присоединяюсь к предложению предыдущего комментатора: наличие таких задач намекает на то, что надо бы задуматься над архитектурой БД.
    Ответ написан
    Комментировать
  • Как работать с двумя ветками на одном ПК?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Если вам нужно две папки - сделайте их: просто скопируйте все содержимое одной папки в другую.
    Только сделать надо это аккуратно, не пропустив никакие файлы и папки.
    Ответ написан
  • Как соотнести структуру и указатель на массив?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    1. Вы не написали, что такое TLevel2Head/PLevel2Head. Я так понимаю, что это TLevel2Pack без поля Data, и укзатель на него? Если нет, то я ничего тут не понимаю.
    Если да, то структура TLevel2Pack - это пакет данных с заголовком TLevel2Head и данные переменной длины.
    2. Тогда InLen - это, по смыслу (по второй проверке из if), полная длина буфера с данными , а откуда она берется и с чем она сравнивается в первой проверке - я без понятия, потому что нужного для этого кода не вижу.
    3. На вопрос "как соотнести" ответ - взять указатель на массив (@) и преобразовать его в указатель на структуру (PLevel2Head(@RecData)^). Так что, если RecData - это буфер с "сырыми" данными (и см. п.1), то понимаете вы правильно.
    Ответ написан
    1 комментарий
  • Неисправен патч корд как исправить?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    1. Проверить, что оба конца обжаты правильно. Как мимнимум, что к парам контактов 1-2, 3-6, 4-5 и 7-8 присоединены жилы из одной пары (одного цвета). Ещё лучше, если они обжаты на обоих сторонах одинаково или по схеме кросс-кабеля (поменяны местами 1-2 и 3-6, возможно - 4-5 и 7-8)
    2. Прозвонить все жилы на предмет обрыва.
    3. Переобжать кабель.
    А лучше - просто заменить.
    Ответ написан
    1 комментарий
  • Почему не применяются новые GPO?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Если КД единственный, то чтобы копать запустите консоль управления групповой политикой, зайдите в просмотр результатов применения групповой политики и запросите их с нужного вам компьютра.

    Если вдруг есть ещё КД, то для начала надо проверить состояние репликации политик на них, это можно сделать все в той же консоли.

    И ещё один частный случай: если политики применяются на пользователей (особенно - если не на всех, а на группу), проверьте есть ли разрешения на чтение этих политик у компьютера: с некоторого (хоть и довольно старого) момента это стало необходимым.
    Ответ написан
    1 комментарий
  • Куда и что добавить в PATH Windows для cl.exe (Microsoft VS)?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Для добавления используйте vcvarsall.bat - он должен лежать в папке VC
    Подробности - https://docs.microsoft.com/en-us/cpp/build/buildin...
    Ответ написан
    Комментировать
  • Как запретить трафик из одной сети в другую через windows server 2019?

    @mvv-rus
    Настоящий админ AD и ненастоящий программист
    Кроме встроенного брандмауэра (который по умолчанию занимается локальным трафиком) в Windows в RRAS есть фильтры пакетов. Это - более примитивный инструмент: они могут только блокировать или пропускать весь трафик кроме указанного в списке исключений, они настраивается для конкретного интерфейса, они работают только в одну сторону (для входящего и исходящего трафика фильтры отдельные), они не отслеживает сессии (но есть возможность избирательного блокирования пакетов подключения по TCP). Но, думаю, для решения вашей задачи фильтров хватит.
    Доступ к настройке фильтров находится в свойствах каждого интерфейса в узле General для протоколов IP (v4 и v6).
    В вашем случае можно на интерфейсе каждой сети в настройках входящего фильтра следует указать, что надо пропускать весь трафик, кроме трафика, направленного в другую сеть (указать в исключениях адрес и маску этой сети).
    Ответ написан
    Комментировать