Оператор as в C#

85
01 июня 2021, 11:40

Объясните пожалуйста оператор as в c#. Учил C++ и с него перешёл на C# для изучения Unity. Насколько я понимаю, то оператор as можно понимать как явное приведение типов.

Answer 1

Оператор as возвращает значение типа второго операнда, если преобразование типов возможно, или null, если невозможно. Этим он отличается от каста (MyClass)obj, который выбрасывает исключение, когда преобразование типов невозможно.

Answer 2

Например,

var m = someObj as MyClass;

Идентично:

MyClass m;
try 
{
    m = (MyClass)someObj;
}
catch (InvalidCastException ex)
{
    m = null;
}

или же:

MyClass m;
if(someObj is MyClass)
{
    m = (MyClass)someObj;
}
else
{
    m = null;
}

Возможно, есть какие-то внутренние различия реализации, и, скорее всего, она ближе ко второму варианту, но суть думаю можно понять.

READ ALSO
C# Обмен данными между UserControl

C# Обмен данными между UserControl

У меня есть UserControl1 и UserControl2В UserControl2 стоит FontDialog

167
Каким образом добавить строки в результат запроса, которых нет в таблице?

Каким образом добавить строки в результат запроса, которых нет в таблице?

Есть таблица journal (id, book_id, reserved_at)Мне нужно по запросу дат (от и до, дата кратна месяцу) получить список книг, которые были взяты

81
реализация модели mvc php

реализация модели mvc php

Есть проблема подключения модели в контроллерeЯ создал основной метод для подключения файлов моделеи который вызывается при необходимости

164
Выполнить код перед отправкой страницы

Выполнить код перед отправкой страницы

Собственно сабж: гугл добавил новый атрибут loading для автоматической ленивой загрузки изображенийКак можно выполнить код на любом языке,...

223