Все до безобразия просто. Открываете настройки Сервис -> Параметры... В открывшемся окне выбираете "Текстовый редактор", у меня Visual C# Studio Express Edition, выбираем язык и вкладку "Общие" и ставим галочку напротив пункта "Номера строк".
в том, что пространство имен не засоряется именами функций, которые используются по одному разу.
Синтаксически коротко, красиво, понятно (не надо искать тело функции, перемещаться лишний раз по коду).
Но пользоваться ими надо правильно, легко злоупотребить.
Чисто формально класс от структуры почти не отличается (на структуру можно {но не нужно} смотреть как на класс с публичными полями). Различие логическое и ответ очевидный - если у вас нечто является структурой данных - например, вы пишите игрушку типа пакмена и в структуре описываете данные уровня, который считываете с файла (или базы данных), то нужно использовать структуру.
Если же эта сущность является не просто структурой, а имеет поведение - то нужно использовать класс. Например, после того, как вы считали с файла данные уровня (расположение героя и стен в уровне, данные о прохождении уровня и быть может время прохождения) - и хотите дать пользователю поиграть в игру то на основе структуры создаете класс Игры или игрового уровня, теперь уровень имеет какое-то поведение и является классом (методы обработки нажатия мыши/клавиатуры пользователем, передвижения ботов и игрока по карте и т.п.).
Короче, если у вас просто данные - используйте структуру, если же они обладают поведением - используйте класс.
Относительно костылей, включая класс с публичными данными. Такое делать можно, но не нужно. Аналогично, вы могли бы (но не стоит так делать) описать структуру Игра и для нее реализовать кучу функций. Это не ООП, суть которого в инкапсуляции, а инкапсуляция, в свою очередь - не просто сокрытие данных или как пишут в плохих книжках "объединение данных с кодом".
Вот тут посмотри: http://msdn.microsoft.com/ru-ru/library/yyaad03b(v=vs.90).aspx.
Я бы не стал сейчас (в наше время) выделять какие-либо наиболее прибыльные языки. Программисты в процессе учебы изучают множество языков, многие из них очень схожи. Затем выбирают свою нишу и работают в каком-то конкретном направлении. Уровень зарплат у программистов в различных направления примерно на одном уровне. Однако, как и во все времена не хватает хороших специалистов. Тот же самый обычный верстальщик может зарабатывать очень немалые деньги, если будет действительно хорошим специалистом в своем деле. Поэтому, руководствуйтесь не выбором конкретного языка программирования, а делом, которое Вам будет по душе