Razor автоматически HTML-экранирует весь вывод кода.
Вы можете предотвратить это, написав @Html.Raw(...)
В качестве альтернативы, вы можете поместить кавычки в буквальный текст:
<li class="@(active ? "active" : "")>
Ваш пример работает, потому что у вас фактически нет кавычек.
Сгенерированный источник HTML читает <li class=active>
.
Ни капли не волнуйтесь. Я начал программировать на Java, затем перешел на C ++. А потом я изучил сборку x86, теперь я в C, а затем я вернулся, чтобы использовать некоторые функции C ++, такие как объекты. Недавно я даже сделал Java-проект. Порядок не важен, пока вы прикладываете усилия к изучению этих языков, вы добьетесь успеха с ними.
Теперь вы спросили о дизайне. Я думаю, что это та часть, которая вам больше всего понравится. В ООП, если вы хотите создать простую оболочку над базой данных, вы должны создать объект, а затем настроить систему наследования с полиморфными функциями и т. Д.
В C вы просто создадите файл с именем sqlite_wrapper.c , включите # sqlite3.h, и вы начнете писать код. Вы сделаете пару функций, Выберите параметры, которые вы хотите отправить (структуры и значения), и все готово.
В C у вас нет классов, но есть ФАЙЛЫ. Наличие разных файлов уже разделяет логику. В Java у вас есть файлы + классы внутри них для разделения логики, и это тоже очень хорошо.
Удачи, получайте удовольствие.
Если вы привыкли к объектно-ориентированному программированию, самая сложная часть перехода на не-объектно-ориентированный язык будет заключаться в адаптации к логистике «моделирования объектов» с использованием существующего механизма. В C это обычно подразумевает наличие структуры, а затем набор функций, которые принимают эту структуру в качестве параметра. С C ++ этого можно избежать.
Однако самая большая проблема при переходе на C или C ++ будет заключаться в том, чтобы привыкнуть к указателям и распределению памяти. Вы, несомненно, сначала сделаете ошибки при ссылках и разыменовании и запутаетесь в ссылках C ++, когда будете работать с ними. Вы также несомненно вызовете утечку памяти или ошибки. А так как вы работаете «по проводу», то вылетов изрядно не будет. Я не уверен, что есть способ преодолеть эти боли, но практикуйся.
Хочу сказать, что выучить C ++ на базе Java будет легче, чем на основе C.
Accelerated C ++ не будет сложнее, это начальный уровень книга. Есть много других хороших книг. Размышление на C ++ может быть хорошим началом, но оно может утомить вас множеством знакомых вещей. Итак, я бы посоветовал просто пройти через это, а затем взять «Эффективную серию». Тогда подойдет Exceptional, Modern C ++.
C ++ не так уж и сложен, единственное, что вам нужно сделать несколько вещей самостоятельно. Как заявил Ури в своем посте, самой сложной частью может быть управление памятью. Фактически, он обширен и труден для понимания, и это может быть причиной его трудностей.
Эта ветка SO предоставляет хороший и важный список литературы по C ++.
Между C и C ++ есть существенные различия. Основным из них является использование объектно-ориентированного дизайна в C ++. Есть также незначительные отличия, которые связаны скорее с типом сделки «привыкание», чем с чем-либо еще. Вот несколько из них, чтобы нарисовать общую картину.
Поскольку вы переходите с Java, объектно-ориентированное программирование должно стать для вас чем-то вроде привычки, и вам будет легче перейти на C ++. Если вам абсолютно необходимо начать с C, в этом нет ничего страшного. Вы по-прежнему сможете понять те же общие концепции, которые используются в обоих языках.
Я прошел путь от программиста на уровне Uni 2-го года на Java (с большим опытом работы с другими языками, отличными от c) до новичка в C ++, получив примерно 2 часа обучения от друга. По строкам «Вот как вы объявляете класс, вот привет, мир и т. Д.».
Переход оттуда к C намного более болезнен, поскольку C ++ имеет большинство возможностей Java (самая большая из которых отсутствует - сборка мусора). Я бы посоветовал вам изучить Boost (библиотеку C ++), особенно интеллектуальные указатели. Кроме того, время, потраченное на освоение стандартной библиотеки шаблонов C ++, потрачено не зря!
Как все сказано, C не очень сложен и может быть хорошим дополнением к вашему арсеналу программирования.
C По сравнению с Java:
Подводя итог: основной проблемой будет отладка. Вы столкнетесь с некоторыми новыми ошибками, когда дело доходит до памяти и использования указателей, и вы » Придется использовать инструменты / подумать, чтобы решить эту проблему, так как JVM отсутствует.
Как говорили многие другие. Это возможно, если вы узнаете различия. В некоторых случаях вам нужно использовать другие способы, в некоторых случаях вы можете попробовать программировать на языке, а не на языке, например, «моделирование» объектов с помощью структур и указателя на структуру в качестве первого аргумента. Если у вас есть опыт, и вы вынуждены с ним работать, вы его усвоите.
Две вещи, которые я хочу вам порекомендовать:
Изучив основы языка, попытайтесь получить глубокое понимание указателей и обработки памяти, где использовать *, &,. , ->, есть важные отличия, и я пробовал их, пока программа не работала. Это очень плохая идея.
Подумайте, как вы можете действительно протестировать свои программы, используя отладчик, насколько это возможно, чтобы понять, почему ваша программа работает или дает сбой и что происходит. Вы можете делать ошибки, которые никогда не обнаруживаются, но когда это важно и у вас нет времени, они вас съедят