as
называется оператором безопасного приведения в C #.Существует семантическая разница между этим и обычным исполнением.Безопасное приведение не вызовет исключения, если тип не может быть приведен;он вернет ноль.Нормальное приведение бросает InvalidCastException
, если тип не может быть приведен.
Другими словами, этот код присваивает null
if Parent, если не типа SPWeb:
SPWeb web = properties.Feature.Parent as SPWeb;
В то время как другойверсия выбрасывается, если Parent имеет неправильный тип:
SPWeb web = (SPWeb)properties.Feature.Parent;
Оператор as
может быть весьма полезен, если вы точно не знаете, что объект может быть приведен к нужному типу - в этомВ этом случае обычно используют as
, а затем проверяют на ноль.as
работает только со ссылочными типами, поскольку типы значений не могут быть нулевыми.
Это также объясняется в этой более длинной статье о MSDN .
Кстати,эквивалентный оператор в VB равен TryCast
(против DirectCast
).