1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
using System;
namespace MonoBugs
{
public struct Foo<T>
{
public T Item;
}
public static class Bar
{
public static void DoStuff<T> (T item, Action<T> fn)
{
throw new ApplicationException ("failed");
}
public static void DoStuff<T> (T? item, Action<T> fn)
where T : struct
{
fn (item.Value);
}
}
public static class Program
{
public static void Main ()
{
Foo<int>? value = new Foo<int> { Item = 3 };
Bar.DoStuff (value, x => Console.WriteLine (x.Item));
}
}
}
|