Ссылка на упражнения, над которыми я буду работать из Breaking IT Down Blog.
Это вторая статья из серии, посвященной основам C# в качестве разработчика JavaScript. Как и прежде, хотя C# построен на объектно-ориентированном программировании, я не буду использовать принципы ООП в примерах кода в этой статье. Я использую эти упражнения, чтобы продемонстрировать различия и сходства в синтаксисе между JavaScript и C#, а позже я проведу рефакторинг кода, чтобы он больше соответствовал практикам ООП.
Упражнение второе
Задачи в каждом упражнении будут обозначены маркерами, и каждая задача будет иметь свое решение непосредственно под ней в блоке кода. Если решение не освещает новую концепцию, еще не описанную в этой серии, в этой статье будет меньше комментариев для каждой задачи.
- Обновите свою переменную, чтобы запросить у пользователя номер социального страхования, сохраните его ввод в строковой переменной
string message = "What is your social security number?" Console.WriteLine(message); string ss = Console.ReadLine();
Аналогично задаче в предыдущей статье.
- Отображать только первые цифры SSN
// remove non-number chars Regex rgx = new Regex("[^0-9 -]"); string temp = rgx.Replace(ss, ""); // check user input correct number of characters if(temp.Length == 9) { ss = temp; } else { Console.WriteLIne("Please use 123-45-6789 format"); ss = Cosole.ReadLine(); } // display the first four digits of the ss number Console.WriteLine(ss.Substring(0, 5));
Во-первых, необходима некоторая проверка ввода, поскольку пользователь может использовать формат 123456789, формат 123–45–6789 или формат 123 45 6789 формат. Регулярное выражение сможет обрабатывать любой формат, выбранный пользователем, и преобразовывать его в стандартный формат. Поэтому, если после удаления нечисловых символов длина строки меньше девяти символов, ввод не является допустимым номером SS, и код снова запросит ввод.
Обратите внимание на объявление типа регулярного выражения. Это тип Regex
, который является классом в C#, как и в JavaScript, и поставляется со многими встроенными методами. Обратите внимание, что метод написан в стиле PascalCased, а не в стиле camelCased. Подробнее о регулярных выражениях в C#.
- Отображать только последние четыре цифры SSN
Console.WriteLine(ss.Substring(5));
Это похоже на предыдущую задачу.
- Показать весь SSN, удалив все дефисы и заменив все цифры, кроме последних четырех, символом *
Console.WriteLine("*****" + ss.Substring(5));
Это еще один допустимый способ объединения строк, как и в JavaScript.
Это второе упражнение из рабочего листа. Я надеюсь, что это поможет развеять ваши страхи перед изучением нового языка. Со стороны это было пугающе для меня, но как только я начал вникать в детали того, как это написано, C# стал намного более приветливым.
Прежде чем я рефакторинг кода сделаю его более объектно-ориентированным, нужно будет выполнить еще одно упражнение.