Parameter enum for CastChecked() function, defines when it will check/assert
Null is okay, only assert on incorrect type
Null is not allowed, assert on incorrect type or null