|
Programmer ASP.NET MVC C# |
Programming
|
||
Предыдущий | Следующий | |
Поскольку явное приведение может потерпеть неудачу, сгенерировав исключение, бывает так что вы хотите проверить тип переменной без выполнения приведения и наблюдения, получится оно или нет. Проверка такого рода утомительна и неэффективна, к тому же исключения дорого обходятся во время выполнения. По этой причине в С# предусмотрены операции, которые приходят на помощь в таких ситуациях:
Операция is дает в результате булевское значение, говорящее о том, можете ли вы преобразовать данное выражение в указанный тип, как посредством приведения ссылки, так и посредством операции упаковки и распаковки. Операция аs подобна is за исключением того, что она возвращает ссылку на целевой тип. Поскольку гарантируется, что она никогда не сгенерирует исключения, здесь просто возвращается null-ссылка, если данное преобразование невозможно. Что же лучше выбрать? Когда вам понадобится проверить, относится ли переменная к определенному типу и если да, то выполнить какую-то операцию над нужным типом. Вы можете проверить переменную на принадлежность к типу, применив операцию is, а затем, если она вернет true, привести переменную к этому типу. Однако это будет не эффективно. Более удачный подход заключается в том, чтобы следовать идиоме применения операции аs для получения ссылки на переменную с нужным типом, а затем проверить ее неравенство null, что будет означать, что преобразование успешно. Таким образом, вы выполните только одну операцию поиска вместо двух.
|