Оператор as
Оператор as выполняет безопасное приведение
к ссылочному типу или Nullable. Слева -
выражение, справа - целевой тип. При успехе
возвращается приведённое значение, иначе
null без исключения. Для проверки типа
без приведения используют is.
К значимым типам напрямую as не применяют -
берут int? и другие nullable-формы.
Синтаксис
значение as тип
Пример
Давайте приведём object к строке:
using System;
class Program
{
static void Main()
{
object obj = "abcde";
string res = obj as string;
Console.WriteLine(res);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте получим null при неверном типе:
using System;
class Program
{
static void Main()
{
object obj = 5;
string res = obj as string;
Console.WriteLine(res == null ? "null" : res);
}
}
Результат выполнения кода:
"null"
Пример
Давайте приведём упакованное число через int?:
using System;
class Program
{
static void Main()
{
object obj = 5;
int? res = obj as int?;
Console.WriteLine(res);
}
}
Результат выполнения кода:
5
Пример
Давайте обработаем null после неудачного
приведения к int?:
using System;
class Program
{
static void Main()
{
object obj = "abcde";
int? res = obj as int?;
Console.WriteLine(res == null ? "null" : res.ToString());
}
}
Результат выполнения кода:
"null"