'как' на основе '', который является ключевым словом, которое проверяет во времени выполнения, если объект polimorphycally совместим (в основном, если бросок может быть сделан), и пустой указатель возвратов, если проверка перестала работать.
Эти два эквивалентны:
Используя 'как':
string s = o as string;
Используя:
if(o is string)
s = o;
else
s = null;
Наоборот, бросок c-стиля сделан также во времени выполнения, но выдает исключение, если бросок не может быть сделан.
Только для добавления важного факта:
, 'поскольку' ключевое слово только работает со ссылочными типами. Вы не можете сделать:
// I swear i is an int
int number = i as int;
В тех случаях необходимо использовать кастинг.
Мне не удалось заставить это работать, поэтому вместо этого я использовал исходный код из проекта CodeProject, Функции LSA - Привилегии и выдача себя за другое лицо , что прекрасно работает.