a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
35 lines
574 B
C#
35 lines
574 B
C#
using System;
|
|
|
|
public sealed class Thing<TFirst> where TFirst : class
|
|
{
|
|
public static Thing<TFirst> Create<TSecond> (Func<TFirst, TSecond> fn)
|
|
where TSecond : class
|
|
{
|
|
return new Thing<TFirst> (
|
|
delegate (TFirst item) {
|
|
TSecond foo = item == null ? null : fn (item);
|
|
Console.WriteLine (foo);
|
|
});
|
|
}
|
|
|
|
public void SomeAction ()
|
|
{
|
|
_fn (null);
|
|
}
|
|
|
|
private Thing (Action<TFirst> fn)
|
|
{
|
|
_fn = fn;
|
|
}
|
|
|
|
Action<TFirst> _fn;
|
|
}
|
|
|
|
public static class Program
|
|
{
|
|
public static void Main ()
|
|
{
|
|
var foo = Thing<object>.Create (x => x);
|
|
foo.SomeAction ();
|
|
}
|
|
} |