a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
48 lines
623 B
C#
48 lines
623 B
C#
using System;
|
|
|
|
public class Test
|
|
{
|
|
delegate void D ();
|
|
|
|
public static void Main ()
|
|
{
|
|
Test t = new Test ();
|
|
t.Test_1 (t);
|
|
t.Test_2<int> (1);
|
|
t.Test_3<Test> (1);
|
|
}
|
|
|
|
public void Test_1<T> (T t) where T : Test
|
|
{
|
|
D d = delegate () {
|
|
Action<T> d2 = new Action<T> (t.Test_1);
|
|
};
|
|
d ();
|
|
}
|
|
|
|
public void Test_2<T> (T? t) where T : struct
|
|
{
|
|
bool b;
|
|
T t2;
|
|
D d = delegate () {
|
|
b = t == null;
|
|
t2 = (T)t;
|
|
t2 = t ?? default (T);
|
|
};
|
|
|
|
d ();
|
|
}
|
|
|
|
public T Test_3<T> (object o) where T : class
|
|
{
|
|
bool b;
|
|
T t2 = null;
|
|
D d = delegate () {
|
|
t2 = o as T;
|
|
};
|
|
|
|
d ();
|
|
return t2;
|
|
}
|
|
}
|