I know a string in C# can be 'nullable' by just using null.
However, the whole point of nullable types is that I get help from the compiler [edit : aka, type error : can't add apple to bananas]
And using this 'type system hack-ish' of 'nullability depends on the underlying type' breaks whatever guarantee I might have (which is no small feat as that seems to be the whole point of using a type system in the first place..)
What are the standard way to deal with this in C#, if one wants to ? Shall I just roll my own 'nullable' class ?
Edit
Let me rephrase the question :
What is the standard way, in C#, to make sure that a variable that you annotated as nullable, does not get assigned to a variable that you did not annotate as nullable.
That is : what is the standard way to have for all types, precisely what the ? keyword gives you for value type.