== Why is this an issue?

The output of an ``++as++`` cast will be null if the input to the cast cannot safely be cast to the desired type. So it makes sense that after such a cast you would null-check the output. But it doesn't make sense to check the input.


=== Noncompliant code example

[source,csharp]
----
void DoTheThing(Toy toy) 
{
  Ball ball = toy as Ball;
  if (toy != null) // Noncompliant
  {
    //...
  }
}
----


=== Compliant solution

[source,csharp]
----
void DoTheThing(Toy toy) 
{
  Ball ball = toy as Ball;
  if (ball != null)
  {
    //...
  }
}
----



ifdef::env-github,rspecator-view[]
'''
== Comments And Links
(visible only on this page)

=== on 18 Jan 2016, 11:33:22 Ann Campbell wrote:
http://www.viva64.com/en/b/0363/#ID0EVHBI

=== on 8 Feb 2016, 13:40:13 Ann Campbell wrote:
subsumed by RSPEC-2583

endif::env-github,rspecator-view[]
