Class downcasting (as) in C#

class Shape { }

class Square : Shape { }

class RedSquare : Square { }

var square = new Square();

var shape = square as Shape;
//shape is Shape

var redSquare = square as RedSquare;
//redSquare is null