Я обычно выбираю один или другой на основе семантики кода.
Например, если у вас есть object
, который, как вы знаете, должен быть string
, тогда используйте (string)
, поскольку это означает, что человек, пишущий код, уверен, что объект является string
, и это не то, что у нас уже есть более серьезные проблемы, чем исключение приведения во время исполнения.
Используйте as
, если вы не уверены, что объект относится к определенному типу, но хотите иметь логику, когда это так. Вы можете использовать оператор is
с последующим приведением, но оператор as
более эффективен.