System.CodeDom.Tests.CSharpCodeGenerationTests.OperatingOnFields C# (CSharp) Method

OperatingOnFields() private method

private OperatingOnFields ( ) : void
return void
        public void OperatingOnFields()
        {
            var cd = new CodeTypeDeclaration("TestFields") { IsClass = true };

            var cmm = new CodeMemberMethod();
            cmm.Name = "UseFields";
            cmm.Attributes = MemberAttributes.Public | MemberAttributes.Static;
            cmm.ReturnType = new CodeTypeReference(typeof(int));
            cmm.Parameters.Add(new CodeParameterDeclarationExpression(new CodeTypeReference(typeof(int)), "i"));
            cmm.Statements.Add(new CodeVariableDeclarationStatement(new CodeTypeReference("ClassWithFields"), "number", new CodeObjectCreateExpression("ClassWithFields")));
            var binaryOpExpression = new CodeBinaryOperatorExpression(
                new CodeFieldReferenceExpression(
                    new CodeVariableReferenceExpression("number"), "NonStaticPublicField"), CodeBinaryOperatorType.Add,
                    new CodeMethodInvokeExpression(new CodeVariableReferenceExpression("number"), "UsePrivateField", new CodeVariableReferenceExpression("i")));
            cmm.Statements.Add(new CodeMethodReturnStatement(new CodeBinaryOperatorExpression(
                binaryOpExpression, CodeBinaryOperatorType.Add, new CodeFieldReferenceExpression(new CodeTypeReferenceExpression("ClassWithFields"), "StaticPublicField"))));
            cd.Members.Add(cmm);

            AssertEqual(cd,
                @"public class TestFields
                  {
                      public static int UseFields(int i)
                      {
                          ClassWithFields number = new ClassWithFields();
                          return ((number.NonStaticPublicField + number.UsePrivateField(i)) + ClassWithFields.StaticPublicField);
                      }
                  }");
        }