C#: Предикаты
Вспомним метод IsInfant() из прошлого урока:
public static bool IsInfant(int age)
{
return age < 1;
}
Console.WriteLine(App.IsInfant(3)); // => false
Подобные методы называют предикатами. методы-предикаты (или методы-вопросы) отвечают на какой-то вопрос и всегда (без исключений!) возвращают либо true, либо false.
Предикаты во всех языках принято именовать особым образом для простоты анализа. В C# предикаты, как правило, начинаются с префикса Is, Has или Can, но не ограничены этими словами. Примеры:
IsInfant()— «младенец ли?»HasChildren()— «есть ли дети?»IsEmpty()— «пустой ли?»HasErrors()— «есть ли ошибки?»
Метод может считаться предикатом только если он возвращает bool.
Давайте напишем ещё один метод-предикат. Он принимает строку и проверяет, является ли она словом 'Castle':
public static bool IsCastle(string building)
{
return building == "Castle";
}
Console.WriteLine(App.IsCastle("Sea")); // => false
Задание
Напишите метод IsMister(), который принимает строку и проверяет, является ли она словом "Mister".
Примеры вызова:
App.IsMister("Mister"); // true
App.IsMister("Miss"); // false
Полезное
Определения
Предикат — выражение, отвечающее на вопрос «да» или «нет» с помощью типа bool.
