 <p>As far as operator <code>as</code> returns <code>null</code> in failure case, variable should be a class or nullable struct:</p> <p>Meanwhile <code>cast</code> requires nothing like that and you can cast struct on struct.</p>