I've done no research on the subject, though I've done some stuff, including nullable types, in C#. But not in this direction. Nevertheless...
I kind of assume you read this msdn subject explaining nullable types?
It states:
T can be any value type including struct; it cannot be a reference type
This makes me suspect the actual implementation is something handled at compile-time, so pointers for getting at it won't exist during runtime?
-Ath
Nothing so esoteric. A nullable type is a struct, and using reference types as fields in structs is A Bad Idea.
When you have a struct that contains a reference type and you copy an instance of the struct, the reference type inside isn't "deep" copied, because it is simply a reference (pointer) to a memory location containing the actual class. So if you copy a struct that contains class instances, the copy will be referencing the same instances as the original.
So I think that's why nullable types can't be reference types- and it would be pointless in any case, since any reference type is
already nullable.
Thanks for the links also, but neither one of those explains why you can't get a pointer to System.Nullable. It's implemented as a struct (as they point out in the links) so why is it special? As I said, if I create a struct that has the exact same format as System.Nullable, I can get a pointer to it... so again, why is it special?