Бесплатный курс по csharp. Зарегистрируйтесь для отслеживания прогресса →

C#: Вызов метода — выражение

В программировании, выражение – нечто возвращающее результат, который можно использовать. Мы уже знаем достаточно много о выражениях и о принципах их построения. Математические операции (сложение, вычитание), строковые операции (конкатенация) – все это выражения:

1 + 5 * 3;
"Hex" + "Let";
// Переменные могут быть частью выражения
rate * 5;

Особенность выражений в том, что они возвращают результат, который можно, например, присвоить переменной или вывести на экран. Например:

// Тут выражение это 1 + 5
var sum = 1 + 5;
Console.WriteLine(sum);

Но не все в программировании является выражением. Определение переменной это инструкция, она не может быть частью выражения. То есть такой код выдаст ошибку:

// Бессмысленный код, который не сработает
10 + var sum = 1 + 5;

Почему об этом важно знать? Как вы увидите дальше, выражения можно комбинировать получая все более сложное поведение в самых неожиданных местах и самым неожиданным образом. Вы будете лучше понимать как можно соединять части кода, чтобы получить нужный результат.

Поговорим о методах. Вызов метода это выражение или нет? Мы знаем что методы возвращают результат, то есть да, они выражения. Из этого автоматически следует много интересного. Например мы можем использовать вызов метода прямо в математических операциях. Вот как можно получить индекс последнего символа в слове:

var name = "Stark";
// Получение свойства и вычитание вместе!
var lastIndex = name.Length - 1;
Console.WriteLine(lastIndex); // 4

В этом коде нет нового синтаксиса. Мы всего лишь соединили уже известные части опираясь на их природу. Можно пойти еще дальше:

var name = "Stark";
Console.WriteLine(name.Length - 1); // 4

Все это справедливо для любых методов, например строковых:

var name = "Stark";
// ToUpper() – переводит слово в верхний регистр
Console.WriteLine("House " + name.ToUpper()); // "House STARK"

Задание

Выведите на экран первую и последнюю буквы предложения, записанного в переменную text, в следующем формате:

First: N
Last: t

Ваша задача извлечь эти символы из строки и вставить в Console.WriteLine(), не используя промежуточные переменные.


Советы

  • Для получения длинны строки используйте свойство Length


Нашли ошибку? Есть что добавить? Пулреквесты приветствуются https://github.com/hexlet-basics
Если вы столкнулись с трудностями и не знаете, что делать, задайте вопрос в нашем большом и дружном сообществе