예제 #1
0
    public static var varios(var param, bool cond1, bool cond2)
    {
        var local = param;
        var toRet;

        if (cond1)
        {
            local = param = new ClassA();
        }
        else
        {
            if (cond2)
            {
                local = param = true;
            }
            //local = param = new ClassC();
            else
            {
                local = param = new ClassB();
            }
        }

        toRet = ParamLocal.Write(local, param);

        return(toRet);
    }
예제 #2
0
 static void Main()
 {
     ParamLocal.varios(5, true);
     ParamLocal.varios(5, false);
     ParamLocal.varios(new ArrayList(), true);
     ParamLocal.varios(new ArrayList(), false);
 }
예제 #3
0
 static void Main()
 {
     ParamLocal.varios(0, true, true);   // 2,2
     ParamLocal.varios(0, true, false);  // 2,2
     ParamLocal.varios(0, false, true);  // 1.5
     ParamLocal.varios(0, false, false); // 5
 }
    public static var varios(var param, bool cond1, bool cond2)
    {
        var local = param;
        var toRet;

        if (cond1)
        {
            local = param = 2.2;
        }
        else
        {
            if (cond2)
            {
                local = param = "1.5";
            }
            else
            {
                local = param = 5;
            }
        }

        //ParamLocal.Write(local);
        toRet = ParamLocal.Write(param);

        return(toRet);
    }
예제 #5
0
    static void Main()
    {
        //Console.WriteLine(ParamLocal.varios(0, true, true));   // A
        //Console.WriteLine(ParamLocal.varios(0, false, true));  // true // C
        //Console.WriteLine(ParamLocal.varios(0, false, false)); // B

        if (!(ParamLocal.varios(0, true, true) is ClassA))
        {
            Environment.Exit(-1); // A
        }
        // v has to be dynamic to compile
        var v = ParamLocal.varios(0, false, true);

        if (!(v))
        {
            Environment.Exit(-1); // true
        }
        //if (!(ParamLocal.varios(0, false, true)))
        //   Environment.Exit(-1);  // true

        if (!(ParamLocal.varios(0, false, false) is ClassB))
        {
            Environment.Exit(-1); // B
        }
    }
    public static void varios(var param, bool cond)
    {
        var local = param;

        if (cond)
        {
            local = param = 2.2;
        }
        else
        {
            local = param = "1.5";
        }

        ParamLocal.Write(local, param);
    }
예제 #7
0
    static void Main()
    {
        Console.WriteLine(ParamLocal.varios(0, true, true));
        Console.WriteLine(ParamLocal.varios(0, true, false));
        Console.WriteLine(ParamLocal.varios(0, false, true));
        Console.WriteLine(ParamLocal.varios(0, false, false));

        //if (ParamLocal.varios(0, true, true) != 2.2)
        //   Environment.Exit(-1);   // 2,2

        //if (ParamLocal.varios(0, true, false) != 2.2)
        //   Environment.Exit(-1);  // 2,2

        //if (!(ParamLocal.varios(0, false, true).Equals("1.5")))
        //   Environment.Exit(-1);  // 1.5

        //if (ParamLocal.varios(0, false, false) != 5)
        //   Environment.Exit(-1); // 5
    }
    public static void varios(var param, bool cond1, bool cond2)
    {
        var local = param;

        if (cond1)
        {
            local = param = new ClassA();
        }
        else
        {
            if (cond2)
            {
                local = param = true;
            }
            else
            {
                local = param = new ClassB();
            }
        }

        ParamLocal.Write(local, param);
    }
예제 #9
0
    public static void varios(var param, bool cond1, bool cond2)
    {
        var local = param;

        if (cond1)
        {
            local = param = new StreamWriter("pp.txt");
        }
        else
        {
            if (cond2)
            {
                local = param = new ArrayList();
            }
            else
            {
                local = param = new StringWriter();
            }
        }

        ParamLocal.Write(local, param);
    }
    static void Main()
    {
        if (ParamLocal.varios(5, true) != 2.2)
        {
            Environment.Exit(-1);
        }

        if (!(ParamLocal.varios(5, false).Equals("1.5")))
        {
            Environment.Exit(-1);
        }

        if (ParamLocal.varios(new ArrayList(), true) != 2.2)
        {
            Environment.Exit(-1);
        }

        if (!(ParamLocal.varios(new ArrayList(), false).Equals("1.5")))
        {
            Environment.Exit(-1);
        }
    }
    public static var varios(var param, bool cond1, bool cond2)
    {
        var local = param;

        if (cond1)
        {
            local = param = 2.2;
        }
        else
        {
            if (cond2)
            {
                local = param = "1.5";
            }
            else
            {
                local = param = 5;
            }
        }

        ParamLocal.Write(param);
        return(ParamLocal.Write(local));
    }
    static void Main()
    {
        //Console.WriteLine(ParamLocal.varios(0, true, true));
        //Console.WriteLine(ParamLocal.varios(0, true, false));
        //Console.WriteLine(ParamLocal.varios(0, false, true));
        //Console.WriteLine(ParamLocal.varios(0, false, false));

        // We have to use dynamic auxiliar variable to compile.
        var v1 = ParamLocal.varios(0, true, true);

        if (v1 != 2.2)
        {
            Environment.Exit(-1);
        }

        var v2 = ParamLocal.varios(0, true, false);

        if (v2 != 2.2)
        {
            Environment.Exit(-1);
        }

        var v3 = ParamLocal.varios(0, false, true);

        if (!(v3.Equals("1.5")))
        {
            Environment.Exit(-1);
        }

        var v4 = ParamLocal.varios(0, false, false);

        if (v4 != 5.0) // With '5' the comparation is incorrect
        {
            Environment.Exit(-1);
        }
    }
 static void Main()
 {
     ParamLocal.varios(5, true);  // 1
     ParamLocal.varios(5, false); // 2,2
 }
예제 #14
0
 static void Main()
 {
     Console.WriteLine(ParamLocal.varios(0, true, true));   // A
     Console.WriteLine(ParamLocal.varios(0, false, true));  // true // C
     Console.WriteLine(ParamLocal.varios(0, false, false)); // B
 }
 static void Main()
 {
     ParamLocal.varios(0, true, true);   // A
     ParamLocal.varios(0, false, true);  // true
     ParamLocal.varios(0, false, false); // B
 }
예제 #16
0
 static void Main()
 {
     ParamLocal.varios(0, false, true);  // ArrayList
     ParamLocal.varios(0, true, true);   // StreamWriter
     ParamLocal.varios(0, false, false); // StringWriter
 }