Exemple #1
0
    static void Main(string [] args)
    {
        Processor p = new Processor();
        IProcessWithDifferentiator <int, int, First> one = p;

        System.Console.WriteLine("one.Process(4) = " + one.Process(4));
        IProcessWithDifferentiator <double, double, Second> two = p;

        System.Console.WriteLine("two.Process(5.5) = " + two.Process(5.5));
        System.Console.ReadLine();
    }
Exemple #2
0
    static void Main(string [] args)
    {
        Processor p = new Processor();
        // Direct conversion of first one, of course
        IProcess <float, float> a1 = p;

        System.Console.WriteLine("a1 .Process(3.3)   =    " + a1.Process((float)3.3));
        // Conversion of differentiated class
        IProcessWithDifferentiator <int, int, Second> a2 = ((IProcessWithDifferentiator <int, int, Second>)p);

        System.Console.WriteLine("a2d.Process(4)     =    " + a2.Process(4));
        IProcessWithDifferentiator <double, double, Third> a3 = (IProcessWithDifferentiator <double, double, Third>)p;

        System.Console.WriteLine("a3d.Process(5.5)   =    " + a3.Process(5.5));
        // Conversions to undifferentiated class using ugly proxies
        IProcess <int, int> a2u = ((IProcessWithDifferentiator <int, int, Second>)p).ConvertToBase();

        System.Console.WriteLine("a2u.Process(4)     =    " + a2u.Process(4));
        IProcess <double, double> a3u = ((IProcessWithDifferentiator <double, double, Third>)p).ConvertToBase();

        System.Console.WriteLine("a3u.Process(5.5)   =    " + a3u.Process(5.5));
        TestProcessor       q  = new TestProcessor();
        IProcess <int, int> b1 = q;

        // Direct conversion of first one, of course
        System.Console.WriteLine("b1 .Process(3)     =    " + b1.Process(3));
        // Conversion of differentiated class
        IProcessWithDifferentiator <int, int, Second> b2d = (IProcessWithDifferentiator <int, int, Second>)q;

        System.Console.WriteLine("b2d.Process(4)     =    " + b2d.Process(4));
        IProcessWithDifferentiator <int, int, Third> b3d = (IProcessWithDifferentiator <int, int, Third>)q;

        System.Console.WriteLine("b3d.Process(5)     =    " + b3d.Process(5));
        // Conversions to undifferentiated class using ugly proxies
        IProcess <int, int> b2u = ((IProcessWithDifferentiator <int, int, Second>)q).ConvertToBase();

        System.Console.WriteLine("b2u.Process(4)     =    " + b2u.Process(4));
        IProcess <int, int> b3u = ((IProcessWithDifferentiator <int, int, Third>)q).ConvertToBase();

        System.Console.WriteLine("b3u.Process(5)     =    " + b3u.Process(5));
        System.Console.ReadLine();
    }
Exemple #3
0
 public TP_Proxy(IProcessWithDifferentiator <TResult, TItem, TDiff> px)
 {
     _proxyTo = px;
 }