Ссылка на упражнения, над которыми я буду работать из 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# стал намного более приветливым.

Прежде чем я рефакторинг кода сделаю его более объектно-ориентированным, нужно будет выполнить еще одно упражнение.

Репозиторий Github для этого проекта.