Разница между обычным приведением типов и оператором as C#

По идее оператор as в C# выполняет точно такие же функции как и обыкновенное приведение типов (например, явное приведение). Так зачем же был введён этот оператор, если его функционал отнюдь не уникален, и его можно запросто заменить на то же явное приведение типов (ну и неявное в некоторых ситуациях, конечно же)

Оператор as отличается от приведения типа только тем, что он никогда не сгенерирует исключение, даже когда присвоение типа невозможно. В ситуации, когда явное/неявное приведения типа выдаст ошибку CastEcxeption - оператор as просто присвоит переменной значение null.

Если после єтого сравнить результат, полученный оператором, с null, или попытаться как-то работать с этой пустой ссылкой - получится, как и предполагается, NullReferenceException. Например, вот здесь:

class MyClass { //... }

object obj = new Object();
MyClass myClass = obj as MyClass(); //вот здесь исключения ещё никакого нет, оператор "съел" всё что туда написали
//в myClass было записано "ничего", тобишь ссылка абсолютно пустая.
//затем, попробуем вызвать системный метод ToString() на экземпляре класса - myClass:

Console.WriteLine(myClass.ToString()); //ожидается информаця про MyClass
//но вот тут в результате мы получаем исключение NullReferenceException.