using System; struct S { public static implicit operator string (S s) { return "s"; } } interface I { } class C : I { static T Foo (T a, I b) { return a; } public static int Main () { S s = new S (); I i = new C (); if (Foo (s, i) != "s") return 1; return 0; } }