It is possible for a program with some local variable x
bool b = x is FooBar;
to assign true to b
at runtime, even though there is no conversion, implicit or explicit, from x
to FooBar
allowed by the compiler! That is to say that
FooBar foobar = (FooBar)x;
would not be allowed by the compiler in that same program.
Can you create a program to demonstrate this fact?
This is not a particularly hard puzzle but it does illustrate some of the subtleties of the is
operator that we’ll discuss in the next episode.
Pingback: Wackiness ensues | Fabulous Adventures In Coding