32 lines
428 B
C#
32 lines
428 B
C#
|
interface IFoo<in T>
|
||
|
{
|
||
|
string Bar (T t);
|
||
|
}
|
||
|
|
||
|
class Foo : IFoo<object>
|
||
|
{
|
||
|
public string Bar (object t)
|
||
|
{
|
||
|
return t.GetType ().FullName;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public class Test
|
||
|
{
|
||
|
public static int Main ()
|
||
|
{
|
||
|
IFoo<object> foo = new Foo ();
|
||
|
IFoo<string> foo2 = foo;
|
||
|
|
||
|
if (foo2.Bar ("blah") != typeof (string).FullName)
|
||
|
return 1;
|
||
|
|
||
|
foo2 = new Foo();
|
||
|
if (foo2.Bar ("blah") != typeof (string).FullName)
|
||
|
return 2;
|
||
|
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
}
|