示例#1
0
        public static void ClassDeclaration()
        {
            CodeTypeDeclaration cls = new FluentCodeClass()
                                      .Method("TestMethod").Attributes(MemberAttributes.Public).Parameter(typeof(string), "parameter1").ReturnType(typeof(int))
                                      .Declare(typeof(DateTime), "supervar", Expr.Primitive(5))
                                      .Call("method")
                                      .Return()
                                      .EndMethod
                                      .EndFluent();

            var type2 = new FluentCodeClass().Name("MathType");

            type2.Method("Add").Parameter(typeof(int), "IntA").Parameter(typeof(int), "IntB")
            .Return((int a, int b) => a + b)
            .EndFluent();

            type2.Method("Subtract").Parameter(typeof(int), "IntA").Parameter(typeof(int), "IntB")
            .Return((int a, int b) => a - b)
            .EndFluent();

            var compileUnit = new CodeCompileUnit();
            var ns          = new CodeNamespace();

            ns.Imports.Add(new CodeNamespaceImport("Test"));
            compileUnit.Namespaces.Add(ns);

            TestGenerated(compileUnit);
        }
示例#2
0
        public static void ClassDeclaration()
        {
            CodeTypeDeclaration cls = new FluentCodeClass()
                .Method("TestMethod").Attributes(MemberAttributes.Public).Parameter(typeof(string), "parameter1").ReturnType(typeof(int))
                    .Declare(typeof(DateTime), "supervar", Expr.Primitive(5))
                    .Call("method")
                    .Return()
                .EndMethod
            .EndFluent();

            var type2 = new FluentCodeClass().Name("MathType");
            type2.Method("Add").Parameter(typeof(int), "IntA").Parameter(typeof(int), "IntB")
                .Return((int a, int b) => a + b)
            .EndFluent();

            type2.Method("Subtract").Parameter(typeof(int), "IntA").Parameter(typeof(int), "IntB")
                .Return((int a, int b) => a - b)
            .EndFluent();

            var compileUnit = new CodeCompileUnit();
            var ns = new CodeNamespace();
            ns.Imports.Add(new CodeNamespaceImport("Test"));
            compileUnit.Namespaces.Add(ns);

            TestGenerated(compileUnit);
        }
示例#3
0
        public static void TryCatchTest()
        {
            var ns = new FluentCodeCompileUnit().Namespace("TestNamespace")
                     .Import("System");

            FluentCodeClass type = ns.Class(MemberAttributes.Public, "TryCatchClass");

            type.Method(MemberAttributes.Public, "TryCatchMethod")
            .Try
            .Throw(Expr.New(typeof(Exception), Expr.Primitive("Evil Exception")))
            .Catch(typeof(Exception), "ex")
            .CallStatic(typeof(Console), "WriteLine", Expr.Primitive("Catch Block"))
            .Finally
            .CallStatic(typeof(Console), "WriteLine", Expr.Primitive("Finally Block"))
            .EndTry
            .EndMethod.EndFluent();

            CodeCompileUnit compileUnit = ns.EndNamespace.EndFluent();

            TestGenerated(compileUnit);
        }