В чем разница между операторами is и as в C#?

Этот вопрос проверяет различие между операторами is и as, которые используются для работы с типами данных в C#.

Короткий ответ

Оператор is используется для проверки, является ли объект экземпляром определенного типа, возвращая true или false. Оператор as пытается выполнить преобразование объекта к указанному типу и возвращает null, если преобразование невозможно.

Длинный ответ

Операторы is и as выполняют различные задачи при работе с типами данных:

 

Оператор is:

- Проверяет, является ли объект экземпляром указанного типа или совместим с ним.

- Возвращает true, если тип объекта соответствует или совместим с указанным типом, и false в противном случае.

- Используется для проверки типа объекта.

Пример:

object obj = "Hello";
if (obj is string)
{
    Console.WriteLine("Это строка");
}

 

Оператор as:

- Пытается выполнить безопасное преобразование объекта к указанному типу.

- Если преобразование невозможно, возвращает null, а не генерирует исключение.

- Используется, когда необходимо преобразовать объект, но при этом избежать ошибки при неудачном преобразовании.

Пример:

object obj = "Hello";
string str = obj as string;
if (str != null)
{
    Console.WriteLine("Преобразование успешно");
}
else
{
    Console.WriteLine("Преобразование не удалось");
}

Разница заключается в том, что is используется для проверки типа, а as — для безопасного преобразования, возвращающего null при неудаче.

Уровень

  • Рейтинг:

    2

  • Сложность:

    3

Навыки

  • C#

Ключевые слова

Подпишись на C# Developer в телеграм