Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract class A { }
- class A1 : A { }
- class A2 : A { }
- class A3 : A { }
- class C
- {
- public C(A1 a) { }
- public C(A2 a) { }
- }
- class X<T> where T: new(A)
- {
- public static T Make1() {
- return new T(default(A3));
- }
- public static T Make2<Y>(Y a) where Y : A {
- return new T(a);
- }
- public static T Make3(A a) {
- return new T(a);
- }
- }
- class P
- {
- static void Main() {
- var x1 = X<C>.Make1();
- var x21 = X<C>.Make2(default(A1));
- var x22 = X<C>.Make2(default(A3));
- var x31 = X<C>.Make3(default(A2));
- var x32 = X<C>.Make3(default(A3));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment