Контакты
Местоположение
Россия

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (86)

Лучшие ответы пользователя

Все ответы (205)
  • Литература по демонам?

    @none7
    Демон отличается от обычного консольного приложения тем, что отказывается от доступа к консоли и становиться независим от жизни и смерти процесса предка и консоли. Как бы это предложение растянуть на 600 страниц?
    Ответ написан
    5 комментариев
  • Анонимные типы в c# и их особенности?

    @none7
    Этот автор только сильно запутал Вас. Код:
    var instance = new {Name = "Alex", Age = 27}
    Эквивалентен такому коду:
    class Anonymous0001 // ссылочный тип
    {
        public string Name { get; private set; } // из других классов выглядит как read-only свойство
        public int Age { get; private set; }
        public Anonymous0001(string name, int age)
        {
            Name = name;
            Age = age;
        }
    }
    
    class Program
    {
        static void Main()
        {
            var instance = new Anonymous0001("Alex", 27);
        }
    }

    Если будет другая строка new { ... }, то компилятор сгенерирует ещё один класс. Всю остальную ересь просто забудьте. В анонимный тип нельзя добавить какую либо функциональность и от них нет никакого толку. Созданы лишь как часть синтаксического сахара, для упрощения выборки нескольких значений из linq запросов. Вроде такого:
    var a = new System.Collections.Generic.Dictionary<string, int>() { { "vasya", 0 }, { "kolya", 0 }, { "alex", 1} };
    
    int i = 0;
    var result = from item in a where item.Value == 0
        select new { Index = i++, Name = item.Key, Id = item.Value }; // создание объекта анонимного типа
    
    foreach(var res in result) {
        bool first = true;
        foreach (var prop in res.GetType().GetProperties()) {
            if (first) first = false;
            else Console.Write(", ");
            Console.Write("{0} = {1}", prop.Name, prop.GetValue(res, null));
        }
        Console.WriteLine();
    }
    Ответ написан
    Комментировать
  • Как переадресовать udp порт?

    @none7
    Также как и в случае TCP. Разница лишь в том, что NAT не может отслеживать разрыв UDP соединений и удаляет их по таймауту, но это уже заботы приложений.
    Ответ написан
    Комментировать
  • Как получить имя текущего юзера в C++?

    @none7
    Windows ведь. В заголовках фунция определена так:
    BOOL WINAPI GetUserNameW(LPWSTR  lpBuffer, LPDWORD lpnSize);
    BOOL WINAPI GetUserNameA(LPSTR  lpBuffer, LPDWORD lpnSize);
    #ifdef _UNICODE
    #define GetUserName GetUserNameW
    #else
    #define GetUserName GetUserNameA
    #endif

    Решения на выбор:
    • Убрать в настройках компиляции определение _UNICODE
    • Использовать GetUserNameA
    • Переписать с использованием TCHAR, size при этом должен быть sizeof(buffer) / sizeof(*buffer)

    И да asd111 прав буфер обязан быть размером UNLEN+1, иначе может случится переполнение буфера, хоть это и маловероятно.
    Ответ написан
    4 комментария
  • Почему выбрасывает ошибку при компилировании?

    @none7
    Вы объявили функцию accept2 внутри функции main. Так делать нельзя.
    Ответ написан
    Комментировать