Esempio n. 1
0
    static void RunTest1()
    {
        var originalCultureInfo = CultureInfo.CurrentCulture;

        try
        {
            CultureInfo.CurrentCulture = CultureInfo.InvariantCulture;

            DateTime dt       = new DateTime(1776, 7, 4);
            string   dtString = dt.ToString();
            Assert.AreEqual(new GenClass1c <DateTime>(dt).ToStringEx(7), dtString + " 7");
            Assert.AreEqual(new GenClass1c <int>(1).ToStringEx(7), "1 7");
            Assert.AreEqual(new GenClass1c <long>(2).ToStringEx(7), "2 7");
            Assert.AreEqual(new GenClass1c <float>(3.14f).ToStringEx(7), "3.14 7");
            Assert.AreEqual(new GenClass1c <double>(4.13).ToStringEx(7), "4.13 7");
            Assert.AreEqual(new GenClass1c <int?>(9).ToString(), "9");

            Assert.AreEqual(new GenClass2 <DateTime, double>(dt, 3.1416).ToString(), dtString + " 3.1416");
            Assert.AreEqual(new GenClass2 <DateTime, double>(dt, 3.1416).ToStringEx(7, 8), dtString + " 3.1416 7 8");
            Assert.AreEqual(new GenClass2 <object, string>(new object(), "3.1416").ToString(), "System.Object 3.1416");
            Assert.AreEqual(new GenClass2 <object, string>(new object(), "3.1416").ToStringEx(7L, 8L), "System.Object 3.1416 7 8");
            Assert.AreEqual(GetString(7.0, 8.0), "7 8");

            var gen1a = new GenClass1a <object>();
            Assert.AreEqual(gen1a.CreateGenClass1b(), "GenClass1b`1[System.Object]");
            Assert.AreEqual(gen1a.CreateGenClass1bArray(), "GenClass1b`1[System.Object][]");

            var gen1aInt  = new GenClass1a <int>();
            var gen1bInt  = new GenClass1b <int>();
            var gen1bLong = new GenClass1b <long>();
            Assert.AreEqual(gen1bInt.IsGenClass1a(gen1aInt).ToString(), "True");
            Assert.AreEqual(gen1bLong.IsGenClass1a(gen1aInt).ToString(), "False");
            Assert.AreEqual(gen1bInt.AsGenClass1a(gen1aInt)?.ToString() ?? "null", gen1aInt.ToString());
            Assert.AreEqual(gen1bLong.AsGenClass1a(gen1aInt)?.ToString() ?? "null", "null");

            var gen1aString = new GenClass1a <string>();
            var gen1b       = new GenClass1b <string>();
            Assert.AreEqual(gen1b.IsGenClass1a(gen1aString).ToString(), "True");
            Assert.AreEqual(gen1b.AsGenClass1a(gen1aString)?.ToString() ?? "null", gen1aString.ToString());
            Assert.AreEqual(GenClass1a <string> .CallVirtual(gen1b), "GenClass1b`1[System.String].VirtualMethod");
            Assert.AreEqual(GenClass1a <string> .CallInterface(gen1b), "GenClass1b`1[System.String].InterfaceMethod1");
            Assert.AreEqual(GenClass1a <string> .CallInterface(gen1b, "Test").ToString(), "GenClass1b`1[System.String]");

            NormalClass n = new NormalClass();
            Assert.AreEqual(CallGenVirtMethod <int>(n).ToString(), "GenClass1a`1[System.Int32]");
            Assert.AreEqual(CallGenVirtMethod <int>(n, 42).ToString(), "System.Int32[]");
            Assert.AreEqual(CallGenVirtMethod <string>(n).ToString(), "GenClass1a`1[System.String]");
            Assert.AreEqual(CallGenVirtMethod <string>(n, "forty-two").ToString(), "System.String[]");
        }
        finally
        {
            CultureInfo.CurrentCulture = originalCultureInfo;
        }
    }
Esempio n. 2
0
    public string CreateGenClass1b()
    {
        var x = new GenClass1b <T>();

        return(x.ToString());
    }
Esempio n. 3
0
 public static string CallVirtual(GenClass1b <T> x)
 {
     return(x.VirtualMethod());
 }
Esempio n. 4
0
    public string CreateGenClass1bArray()
    {
        var x = new GenClass1b <T> [3];

        return(x.ToString());
    }