title: Delegate with nullable ref parameter that could be null
body: <p>It's ridiculous I know... But heres a demo:</p>
  
  <pre><code>class Foo
  {
      // A lot of data in the nullable class foo.
  }
  
  class bar
  {
      public delegate void FooHandler(object sender, ref Foo f);
      public event FooHandler FooChanged;
  }
  </code></pre>
  
  <p>The problem is that I want to set 'f' to null in the event handler, but I can't pass null as ref. I tried this instead:</p>
  
  <pre><code>    public delegate void FooHandler(object sender, ref Foo? f);
  </code></pre>
  
  <p>But Foo is nullable, so that doesn't work. I then tried modifying the invoke method for the handler and set up a dummy null item to pass, which didn't work either. I tried using out instead of ref as out doesn't need an initialised variable, and that compiled but didn't run.</p>
  
  <p>It's really weird and I've never really seen anything like it. I could change the Foo class to be non-nullable so I can implement it as Nullable, or I could add my own flag Foo.HasValue and do it that way... But is there no way to do it without changing the Foo class?</p>