• Как передать свойство в другой класс?

    @Marox
    Человек
    Ваш combobox - это поле класса fMain. Статические методы не относятся к определенному объекту => не имееют доступа к данным объекта. Но можно в качестве аргумента передать в статический метод ссылку на объект
    // вот сам метод
    class fMain{
    //...
    public static combRangesAccess(fmain ob)
    {
        return ob.combRanges.Text;
    }
    // вот Вы создаете экземпляр класса fMain
    fMain obj = new fMain();
    // вот вызываете метод
    string text = fMain.combRangesAccess(obj);
    Ответ написан
    4 комментария
  • Как передать свойство в другой класс?

    @dmitryKovalskiy
    программист средней руки
    Передавать в другой класс вы ничего не можете. Может в другой объект? А что мешает сделать так -
    obj1.prop = obj2.combRangeAccess ?
    Некостыльные варианты зависит от вашего алгоритма. Что вы реализуете, как и почему именно таким методом. Вы хотите чтобы у вас один класс(именно класс) зависел от состояния комбобокса? это плохая идея. Объект класса еще ладно - на уровне конструктора можно просто передать состояние нужного вам свойства.
    Ответ написан
    1 комментарий
  • Почему в Rijndael присутствует сравнение с 0x80?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Потому что gfmultby02 - это функция умножения на два в поле Галуа 2^8. Если вчитаться в статью и поразмыслить, то байт, который больше или равен 0х80, будет представлен в виде "х^7 + ..." - тут важен только x^7, a байт, меньше 0х80 будет представлен полиномом максимум шестой степени, т.е. х^6 + ...
    Далее, 2 (то, на что умножаем) - это х^1 + х^0 = х.
    Дальше, просто умножаем полином на х. Видно, что если байт был меньше 0х80, то получится максимум полином x^7 + ..., он входит в используемое поле. Реализует это сдвиг влево.
    Втора ветка кода реализует поведение, когда результат не входит в наше поле. XOR 0х1b, видимо, как-то связан с конкретным порождающим полиномом 100011011, тут не разбирался. Может быть, Mrrl подскажет.
    Ответ написан
    Комментировать
  • Как выучить английский начинающему программисту?

    sloboda
    @sloboda
    Java QA Automation
    Приложение на смартфоне duolingo
    Оно бесплатное
    Слушайте подкасты IT от Luxoft и др. Так как многие
    слова поймете из контекста, а спикеры все-таки не англоговорящие и потому говорят не так быстро,
    таким образом начнете понимать на слух.
    Найдите единомышленников и старайтесь общаться с ними на английском. Пусть будет криво. Зато в мозгу преодолеется барьер.

    Окружите себя языком.

    Не используйте русский в меню смартфона, в меню всяких программ и операционной системы.
    Всё, что возможно, замените на английский.

    Все эти способы бесплатны и эффективны.
    Ответ написан
    Комментировать
  • Почему не работает одна ветвь кода в программе?

    @akass
    Developer
    Все работает как надо, достаточно по шагам пройти в отладке.
    Ты не сконвертировал строки в числа. Поэтому компилятор берет код символа из таблицы su0.ru/WlLx
    целочисленный код семерки 55, код единицы 49, в сумме 104. Так что все правильно.
    Например вот так будет работать как ты хочешь, но конечно так не правильно делать.
    x = Convert.ToInt32(equation[4].ToString()) + Convert.ToInt32(equation[2].ToString());
    Ответ написан
    3 комментария
  • Как во время работы программы менять дизайн окна в форме?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Ярким примером желаемого -- установщик любого приложения (Installation Wizard)
    Ну, лично мне как-то не приходилось делать Wizard'ы, но скажу следующее:

    1) Если интерфейс не совсем динамический, а все же шаблонный, то удобнее было бы заранее (в WYSIWYG) сделать много форм на каждый экран визарда и просто менять их.
    Но конкретно менять формы (окна) это не очень хорошая идея, незаметно скрыть одно окно и показать другое - сложно (смотрится некрасиво), и еще есть нюансы, это уже особенности ОС.
    Я бы посмотрел в сторону композитных контролов (они же юзерконтролы), каждый экран сделал бы отдельным юзерконтролом, и все их на одну форму (как Panelи). При этом редактировал бы их - через отдельные файлы, как если бы это были отдельные формы.
    А какой показать, какой скрыть - это уже решать либо экранам, либо форме-контейнеру. Скорее - второе, каждый экран возвращал бы значение по принципу ShowDialog, возвращал форме, а она б уже решала.

    2) В винде для визардов есть готовые средства - Property Sheets. Да, это WinAPI, Да, это тот еще гемор. Но все же я бы обязательно изучил их. Может стоит написать для них удобную обертку под .NET. Или хотя бы перенять какие-то интересные решения из них - и воплотить в своих визардах, которые тогда реально станут самыми визардатыми визардами в мире.
    Ответ написан
    5 комментариев
  • Как во время работы программы менять дизайн окна в форме?

    vpuhoff
    @vpuhoff
    Программист в свободное от работы время
    Смотря что именно подразумевается под "дизайном". В идеале все вызовы отрисовки элементов управления "знают" текущий дизайн и при его смене просто отрисовывают уже "новый" дизайн. Ничего закрывать или перезагружать в таком случае не нужно, в лучшем случае достаточно сделать Refresh окна после смены "текущего" на "новый"
    Ответ написан
    4 комментария
  • Все мои логотипы получаются не законченными. В чем дело?

    В данном случае, у вас нет симметрии. Можно отодвинуть R или сделать ее чуть шире. Либо вообще не разъединять буквы, тогда в симметрии не будет необходимости.

    1da8ed47b1864fc5b9e93c117c8c19f8.png
    Ответ написан
    Комментировать
  • Все мои логотипы получаются не законченными. В чем дело?

    disablesilence
    @disablesilence
    Штатный искусствовед
    На мой взгляд в этом знаке воздуха не хватает. R хочется отодвинуть и сделать чуть шире. Она не равноправна с N.
    Белый прямоугольник тоже можно увеличить смело.
    Ответ написан
    Комментировать
  • С чего начать знакомство с ИТ?

    ThePyzhov
    @ThePyzhov
    iOS Ninja
    Сторон у IT довольно много, и начинать можно с разных.
    • Если вас интересует веб, то начинайте с html + css. Очень неплохой сайт для этого. Так же лучше какой нибудь книжечкой запастись по этим разделам.

    • Если интересует десктопное или мобильное программирование, то тут уже смотрите в сторону С++, Java и т.д. Начинать конечно с плюсов сложно, без должной подготовки, но возможно.


    P.S. По видеокурсам заниматься - тратить время в пустую. Как выше сказали, и с чем я согласен: они служат только для связки материала, который уже прошел. Для обучения с 0 они не годятся.
    Ответ написан
    6 комментариев
  • Как работает C#?

    Nipheris
    @Nipheris Куратор тега C#
    А откуда берётся этот MSIL? Куда компилируются .cs?

    cs компилируются компилятором. Есть стандартный csc, поставляется вместе с .net framework (НЕ со студией). Это "классический" компилятор от MS, написан на C++, с закрытым исходным кодом. Такой же есть и для Visual Basic. Кроме них есть еще Roslyn-компиляторы C# и VB, они open-source, их главное отличие в том, что они сами написаны на управляемых языках. Это значит, что у вас есть compiler-as-a-service. Это, в свою очередь, значит, что если вы хотите написать тулзу, обрабатывающую тем или иным образом исходный код, например на C#, вам не нужно самому писать парсер/компилятор, вы можете подключить модули Roslyn-компилятора и пользоваться ТЕМ ЖЕ компилятором (лексером/парсером/etc), что и используется непосредственно при сборке приложения. С классическим компилятором так не получится, он представляет из себя черный ящик: cs на входе, сборка на выходе.

    Далее будем считать, что не учитываем в рассуждениях технологию .net native.
    в каком моменте тогда работает виртуальная машина

    она работает в момент запуска exe.
    почему мы получаем на выходе .exe

    в этом вопросе часто возникает путаница. Дело в том, что дотнетовские exe и dll - это т.н. сборки (assemblies), и они содержат метаданные и MSIL (!) исполняемый код. То, что у них расширения exe и dll - это потому, что MS для повышения совместимости и удобства использования, упаковала их в формат PE. Чтобы .net приложения можно было запускать также, как и нативные. НО реально в exe-файле есть только небольшой загрузчик, который запускает CLR, просит загрузить текущий файл как дотнет-сборку и передать управление на метод-точку входа. Почитайте про сборки в хорошей книге, и скачайте dotPeek, посмотрите что внутри дотнетовского exe. Это совсем не то, что в "обычном", нативном exe.

    В мире C# существуют также такие понятия как .NET, Mono, Roslyn и т.д., можете ли вы структурированно разъяснить их смысл?

    .NET это название и бренд платформы, .NET Framework, а теперь и .NET Core - реализации платформы от MS, Mono - open-source реализация НЕ от MS. .NET FW работает только на винде, .NET Core и Mono и на других платформах. Про Roslyn уже упомянул.
    Ответ написан
    Комментировать
  • Как работает C#?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    > Насколько я знаю, в Java есть JVM, которая загружает файлы .class, содержащие байт-код, и запускает их.
    Поправка: обычно не .class, а .jar. А вот внутри .jar (это архив) - уже файлы .class. Ведь .class, как ясно из названия, содержит только 1 класс, нечто вроде .obj в C++. А в приложении может быть и несколько классов, + цифровая подпись, + прочее. Вот всё это и линкуется в .jar.
    Один и тот же .jar работает везде там, где есть JVM в чистом виде. На десктопных линуксах работает. На Android не работает, там вместо этого .apk - другой формат.

    > Куда компилируются .cs?
    Гуглим csc.exe
    Обычно все операции осуществляются в нем, т.е. из .cs может делать сразу .exe. Хотя возможно сперва сделать IL (нечто вроде ассемблера, но пока еще НЕ байт-кода, т.е. НЕ бинарное), а вот IL уже скомпилировать в байт-код (бинарный формат) с оберткой exe.

    > В мире C# существуют также такие понятия как .NET, Mono, Roslyn и т.д., можете ли вы структурированно разъяснить их смысл?
    В .NET Framework входят:
    - компиляторы: для C# (тот самый csc.exe) и не только для C# (да, компиляторы именно входят в .NET, а не в Visual Studio);
    - тот самый CLR;
    - несколько библиотек классов, таких, как mscorlib.dll, System.Windows.Forms.dll (Winforms). библиотеки WPF. Такие библиотеки называются стандартными. Те библиотеки, которые в .NET не входят и их нужно таскать рядом с exe, называются сторонними (third-party), так как обычно они созданы не MS, а сторонними, "третьими", разработчиками.

    Mono - платформа, позиционируемая как кроссплатформенная альтернатива .NET Framework. То есть всё перечисленное там своё и от MS ничего нет. IDE также своя - MonoDevelop.
    На деле же, альтернатива эта от начала до конца очень сырая и вообще хилая. Например, Winforms/WPF там просто нету (может и можно прикрутить эти сборки из .NET, но на линуксе без вайна не заработает, да и MonoDevelop не содержит средств для удобной разработки под них). Вместо Winforms/WPF там GTK#, он реально кроссплатформенный, но до Winforms и тем более WPF ему очень далеко.

    Roslyn - какой-то новый компилятор от MS, вроде бы альтернатива старому csc.exe. Ничего интересного лично я в нем не вижу.
    Ответ написан
    1 комментарий
  • Как работает C#?

    GavriKos
    @GavriKos
    MSIL - это как раз результат компиляции c#. И именно он содержится в exe. Просто этот exe запускает .net машину и говорит ей где в exe MSIL.
    Ответ написан
    Комментировать