• Разница между экземпляром класса и классом C#?

    Извиняюсь, что не по теме, но как вообще можно приступать к ООП, не зная вот таких вот элементарных вещей. По мне так стоило бы начать с книг по C#, чтобы разобраться в азах ООП и не задавать таких вопросов. А не бежать сразу программировать... Еще раз извиняюсь.
    Ответ написан
    Комментировать
  • Как решить проблему конверта DateTime при селекте из Gridview?

    @dmitryKovalskiy
    программист средней руки
    Устал уже если честно видеть подобный код. Ваши танцы с бубнами связаны с тем что вы не имеете представления о грамотной работе с базой данных. Конкатенация SQL-запроса в обработчике события в code-behind - это решение человека, работающего с технологией минут 20. Решений - гора. 1) Использование ORM(использование Entity Framework с подходом DB First избавляет от приведения типов и возможности сделать инъекцию) 2) Использование хранимых процедур. 3) использование параметризованных запросов. Парадокс в том что если вы в запросе используете, например, хранимую процедуру, то вы можете использовать код вида cmd.Parameters.AddIDateTime(sName, val) - и приводить типы не надо.
    Ответ написан
    7 комментариев
  • Что за страности в Stream в.NET?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    ReadByte возвращает тип int, т.к. при достижении конца будет возвращено значение минус один. А тип byte может иметь значение в диапазоне от нуля до 255. То есть, считывая байты, сообщить о достижении конца потока при помощи типа byte невозможно (байт, имеющий значение ноль может быть полезным байтом), поэтому используется тип int.

    Метод Read принимает буфер, в который будут помещены считанные данные. Буфер - это массив байт. Изначально он должен быть пустым. Размер массива - по своему смотрению. Чем больше размер буфера, тем больше данных будет помещено в память, меньше проделано операций.

    Метод Read возвращает число помещенных в буфер байт. Ноль - достигнут конец потока.

    FileInfo f = new FileInfo(@"C:\example.dat");
    using (FileStream fs = f.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    {
     using (BinaryReader br = new BinaryReader(fs))
     {
       int bytesRead = 0;
       byte[] buffer = new byte[256]; // размер буфера 256 единиц байт
       StringBuilder result = new StringBuilder();
       while ((bytesRead = br.Read(buffer, 0, buffer.Length)) != 0) // читаем не более 256 единиц байт в buffer
       {
         // из buffer следует извлекать не более bytesRead (в конце это число может быть меньше 255)
       }
     }
    }

    Массивы являются ссылочными типами и нет необходимости использовать out.
    Ответ написан
    3 комментария
  • Правила объявления интерфейсов. "I" или "!I"?

    @mamkaololosha
    В джаве же implements/extends. там I избыточен.
    Ответ написан
    Комментировать
  • Какой из ноутбук стоит взять?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Никаких особенных требований у C# или Java нет. Лишь бы машинные коды исполнял, да не путался. Для Visual Studio, конечно, хочется что-нибудь побыстрее. А для Windows - что-нибудь с SSD. В остальном - как хотите сами.

    Тут ещё вот какой совет. Если требуется машинка, чтобы под рукой была - очень советую брать что-нибудь лёгкое и компактное. Раза три уже выбирал ноут. Раза три клялся брать макбук или ультрабук. Раза три меня искушала то nVidia повыше, то FullHD, то сенсорный экран, то ещё что-то. И ценник. Теперь таскаю с собой 2.5 кг. А таскаю постоянно - на нём почти всё. Даже учитывая все эти дропбоксы и прочее - ходить со своим окружением - неописуемый кайф. Когда ты можешь поднять wireshark и вытащить из сети что надо, найти утечку с каким-нибудь любимым профайлером, позаимствовать WiFi соседей (потому что очень надо) с собственного словарика и аирдампа. В общем, иметь свою окружение это шикарное ощущение.
    Ответ написан
    Комментировать