title: nullable string in C#
body: <p>I know a string in C# can be 'nullable' by just using null.</p>
  
  <p>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]</p>
  
  <p>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..)</p>
  
  <p>What are the standard way to deal with this in C#, if one wants to ?
  Shall I just roll my own 'nullable' class ?</p>
  
  <p><strong>Edit</strong> </p>
  
  <p>Let me rephrase the question :</p>
  
  <p>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.</p>
  
  <p>That is :
  what is the standard way to have <strong>for all types</strong>, precisely what the <strong>?</strong> keyword gives you for value type.</p>