NArrange.CSharp.CSharpWriteVisitor.VisitFieldElement C# (CSharp) Method

VisitFieldElement() public method

Processes a field element.
public VisitFieldElement ( FieldElement element ) : void
element NArrange.Core.CodeElements.FieldElement Field code element.
return void
        public override void VisitFieldElement(FieldElement element)
        {
            this.WriteComments(element.HeaderComments);
            this.WriteAttributes(element);

            WriteAccess(element.Access);

            WriteMemberAttributes(element.MemberModifiers);

            if (element.IsVolatile)
            {
                Writer.Write(CSharpKeyword.Volatile);
                Writer.Write(' ');
            }

            if (element[CSharpExtendedProperties.Fixed] is bool &&
                (bool)element[CSharpExtendedProperties.Fixed])
            {
                Writer.Write(CSharpKeyword.Fixed);
                Writer.Write(' ');
            }

            Writer.Write(element.Type);
            Writer.Write(' ');

            Writer.Write(element.Name);

            if (!string.IsNullOrEmpty(element.InitialValue))
            {
                Writer.Write(' ');
                Writer.Write(CSharpSymbol.Assignment);
                Writer.Write(' ');
                if (element.InitialValue.IndexOf("\n") >= 0)
                {
                    string initialValue = element.InitialValue;
                    int lineFeedIndex = initialValue.IndexOf('\n');
                    if (lineFeedIndex > 0)
                    {
                        string initialValueFirstLine = initialValue.Substring(0, lineFeedIndex + 1);
                        initialValue = initialValue.Substring(lineFeedIndex + 1);

                        Writer.Write(initialValueFirstLine);
                    }

                    WriteTextBlock(initialValue);
                }
                else
                {
                    Writer.Write(element.InitialValue);
                }
            }

            Writer.Write(CSharpSymbol.EndOfStatement);

            if (element.TrailingComment != null)
            {
                Writer.Write(' ');
                int tabCountTemp = this.TabCount;
                this.TabCount = 0;
                element.TrailingComment.Accept(this);
                this.TabCount = tabCountTemp;
            }
        }