Научиться создавать и использовать функции-расширения (extension methods) в C#, понимать их синтаксис, применение и ограничения.
Ключевые навыки:
this
в параметрахС помощью функций-расширений реализована работа со струткурами данных, которые будут изучаться на следующих занятиях.
Необходимо реализовать функцию-расширение для типа string
, которая проверяет, является ли строка палиндромом (читается одинаково слева направо и справа налево).
Требования:
IsPalindrome
.bool
.Примеры:
true
false
Ознакомбтесь с источниками, указанными в списке литературы, коотрый указан в конце данного задания.
StringExtensions
.public static class StringExtensions
{
// Шаг 2
}
Напишите модульные тесты (xUnit) в проекте task01tests для проверки корректности работы метода.
using xUnit;
public class StringExtensionsTests
{
[Fact]
public void IsPalindrome_ValidPalindrome_ReturnsTrue()
{
string input = "А роза упала на лапу Азора";
Assert.True(input.IsPalindrome());
}
[Fact]
public void IsPalindrome_NotPalindrome_ReturnsFalse()
{
string input = "Hello, world!";
Assert.False(input.IsPalindrome());
}
[Fact]
public void IsPalindrome_EmptyString_ReturnsFalse()
{
string input = "";
Assert.False(input.IsPalindrome());
}
[Fact]
public void IsPalindrome_WithPunctuation_IgnoresPunctuation()
{
string input = "Was it a car or a cat I saw?";
Assert.True(input.IsPalindrome());
}
}
Extension Methods (C# Programming Guide)