.


:




:

































 

 

 

 


Console.WriteLine(iOb.GetOb());




// Gen2 // iOb Gen<int>. iOb = new Gen2<int> (99);

// GetOb() Gen2.

Console.WriteLine(iOb.GetOb());

}

}

.

GetOb() Gen : 88 GetOb() Gen2 : 99

, GetOb () Gen2, Gen.

.

iOb = new Gen2<int>(99);

, iOb Gen<int>. , Gen<int> , Gen<int>, Gen2<int>. , iOb , , Gen2<int>, .

, , . . , , , , . , . , , . , , , .

.

// , // .

//

// , using System;

// , Set(), // , class Gen<T, V> {

obi;

V ob2;

//...

// // , public void Set(T ) { obi = ;

}

public void Set(V ) { f ob2 = o;

}

}

class AmbiguityDemo { static void Main() {

Gen<int, double> ok = new Gencint, double>();

Gen<int, int> notOK = new Gencint, int>();

ok.Set(10); // ,

notOK.Set(10); // , !

}

}

. , Gen : V. Gen Set () V, .

public void Set (T ) { obi = ;

}

public void Set(V o) { ob2 = o;

}

, V . .

Gen V. , , Gen , .

Gencint, int> notOK = new Gencint, int>();

, V, int. Set () , , , . , Set () notOK Main () .

, , . , , , , . . , .

15 . - #, . C# 4.0 , . , , , , .NET Framework. , , , . , , . .

, , , . . , . out, .

, . IMyCoVarGenlF, .

// , public interface IMyCoVarGenlFCout > {

GetObject();

}

, . out. out , . , GetOb j ect () , .

, IMyCoVarGenlF . MyClass.

// IMyCoVarGenlF. class MyClass<T>: IMyCoVarGenIF<T> {

T obj;

public MyClass(T v) { obj = v; } public T GetObject() { return obj; }

}

, out , MyClass. , , out .





:


: 2016-12-03; !; : 478 |


:

:

.
==> ...

1757 - | 1582 -


© 2015-2024 lektsii.org - -

: 0.01 .