+++ /dev/null
-using System;
-static class Test1 {
- public interface IOp<T> {
- T Func(uint v);
- }
- public struct Op : IOp<ushort>, IOp<uint> {
- ushort IOp<ushort>.Func(uint v) { return (ushort )(v * 2); }
- uint IOp<uint>.Func(uint v) { return v * 4; }
- }
- static void Foo<T,OP>(uint v) where T:struct where OP : IOp<T> {
- OP op = default(OP);
- System.Console.WriteLine( op.Func(v) );
- }
- static public void Main() {
- Foo<ushort, Op>(100);
- Foo<uint, Op>(100);
- }
-};