Оглавление:
Определение - что означает оператор IS?
Оператор IS в C # - это оператор, используемый для динамической проверки совместимости объекта с данным типом.
При работе со ссылочными типами, включающими базовые и производные типы, становится необходимым привести объект базового типа к производному типу, а затем вызвать метод. В случае, если простое приведение от базового к производному типу не является успешным, оно вызывает исключение. Оператор is используется для проверки успешности операции приведения без исключения. Это эффективный оператор. Он не только проверяет безопасное и успешное приведение объекта, но также извлекает значение при успешном приведении. Однако он часто используется в коде для определения типа объекта без каких-либо требований к операции приведения.
Поскольку оператор is всегда возвращает логическое значение (true или false) после операции приведения и никогда не генерирует исключение, он очень надежен для использования в коде приложения. Кроме того, он позволяет более просто проверять тип объекта с данным типом, что уменьшает размер кода и усилия по разработке.
Техопедия объясняет оператор IS
Оператор is является оператором тестирования типов с двумя параметрами, которые включают в себя выражение ссылочного типа. Ссылочный тип должен быть проверен на преобразование и тип назначения, к которому должно быть приведено выражение. Оператор is возвращает true, если данное выражение, представляющее объект, не является нулевым, и выражение успешно преобразуется в указанный тип. В противном случае возвращается false.
Оператор is не может быть перегружен, чтобы обеспечить любую другую семантику. Он может использоваться для проверки ссылок, преобразования в коробку и распаковки, но не для пользовательских преобразований. Хотя совместимость типов выражения оценивается во время выполнения, компилятор C # генерирует предупреждение во время компиляции, когда оператор is используется для типов, которые не совместимы.
Например, оператор is можно использовать для проверки того, является ли параметр, передаваемый методу, типом Student, или его производным типом, где Student - это тип, используемый для представления информации, связанной со студентом в приложении.
Оператор is отличается от оператора AS тем, что первый приводит к выполнению двух приведений, тогда как последний избегает двойного приведения к единственному шагу и, следовательно, лучшая производительность достигается за счет использования оператора as.
