37 lines
399 B
C#
37 lines
399 B
C#
|
using System;
|
||
|
|
||
|
struct S : IDisposable
|
||
|
{
|
||
|
public void Dispose ()
|
||
|
{
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class A<T> where T : IDisposable
|
||
|
{
|
||
|
public virtual bool Test<U> (U u) where U : T
|
||
|
{
|
||
|
using (u) {
|
||
|
return false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
class B : A<S>
|
||
|
{
|
||
|
public override bool Test<U> (U u)
|
||
|
{
|
||
|
using (u) {
|
||
|
return true;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public static int Main ()
|
||
|
{
|
||
|
var b = new B ();
|
||
|
if (!b.Test (new S ()))
|
||
|
return 1;
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
}
|