System.CodeDom.Tests.CSharpCodeGenerationTests.MaskingVariables C# (CSharp) Метод

MaskingVariables() приватный Метод

private MaskingVariables ( ) : void
Результат void
        public void MaskingVariables()
        {
            CodeNamespace ns = new CodeNamespace("ns");
            CodeTypeDeclaration class1 = new CodeTypeDeclaration();
            class1.Name = "Class1";
            ns.Types.Add(class1);

            var cmm = new CodeMemberMethod();
            cmm.Name = "for";
            class1.Members.Add(cmm);

            cmm = new CodeMemberMethod();
            cmm.Name = "while";
            cmm.Attributes = MemberAttributes.Final | MemberAttributes.Public;
            cmm.Statements.Add(new CodeExpressionStatement(new CodeMethodInvokeExpression(new CodeThisReferenceExpression(), "for")));
            class1.Members.Add(cmm);

            class1 = new CodeTypeDeclaration();
            class1.Name = "TestMasking";
            ns.Types.Add(class1);

            cmm = new CodeMemberMethod();
            cmm.Name = "TestMasks";
            cmm.ReturnType = new CodeTypeReference(typeof(int));
            cmm.Parameters.Add(new CodeParameterDeclarationExpression(typeof(int), "i"));
            cmm.Attributes = MemberAttributes.Static | MemberAttributes.Public;
            cmm.Statements.Add(new CodeVariableDeclarationStatement(new CodeTypeReference("Class1"), "temp", new CodeObjectCreateExpression(new CodeTypeReference("Class1"))));
            cmm.Statements.Add(new CodeExpressionStatement(new CodeMethodInvokeExpression(new CodeVariableReferenceExpression("temp"), "while")));
            cmm.Statements.Add(new CodeMethodReturnStatement(new CodeVariableReferenceExpression("i")));
            class1.Members.Add(cmm);

            AssertEqual(ns,
                @"namespace ns {
                  public class Class1 {
                      private void @for() { }

                      public void @while() {
                          this.@for();
                      }
                  }

                  public class TestMasking {
                      public static int TestMasks(int i) {
                          Class1 temp = new Class1();
                          temp.@while();
                          return i;
                      }
                  }
              }");
        }