Ejemplo n.º 1
0
        public static void DumpTo(this CSharpModifiers modifiers, CodeWriter writer)
        {
            if ((modifiers & CSharpModifiers.Const) != 0)
            {
                writer.Write("const ");
                return;
            }

            if ((modifiers & CSharpModifiers.Static) != 0)
            {
                writer.Write("static ");
            }

            if ((modifiers & CSharpModifiers.Abstract) != 0)
            {
                writer.Write("abstract ");
            }

            if ((modifiers & CSharpModifiers.Unsafe) != 0)
            {
                writer.Write("unsafe ");
            }

            if ((modifiers & CSharpModifiers.ReadOnly) != 0)
            {
                writer.Write("readonly ");
            }

            if ((modifiers & CSharpModifiers.Extern) != 0)
            {
                writer.Write("extern ");
            }

            if ((modifiers & CSharpModifiers.Partial) != 0)
            {
                writer.Write("partial ");
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     Generates a property accessor within the runtime type.
        /// </summary>
        /// <param name="writer">
        ///     The text writer that outputs the content into the file.
        /// </param>
        /// <param name="accessor">
        ///     The accessor to be generated.
        /// </param>
        /// <param name="accessorType">
        ///     The type of accessor to be generated.
        /// </param>
        /// <param name="modifier">
        ///     The property modifier.
        /// </param>
        protected virtual void GenerateMember(StreamWriter writer, CSharpAccessor accessor, String accessorType, CSharpModifiers modifier)
        {
            // Validate that the accessor has been defined
            if (accessor == null)
            {
                return;
            }

            // Output the accessor modifier and type
            writer.Write("            ");
            writer.Write(accessor.AccessorModifier == modifier ? null : accessor.AccessorModifier.ConvertTo <String>().ToLower().Replace("_", " ") + " ");
            writer.Write(accessorType);

            // Output the accessor code
            if (accessor.AccessorCode == null || accessor.AccessorCode.Length == 0)
            {
                writer.WriteLine(";");
            }
            if (accessor.AccessorCode != null && accessor.AccessorCode.Length == 1)
            {
                writer.WriteLine(" { " + accessor.AccessorCode[0] + " }");
            }
            if (accessor.AccessorCode != null && accessor.AccessorCode.Length >= 2)
            {
                writer.WriteLine();
                writer.WriteLine("            {");
                writer.WriteLine(String.Join(Environment.NewLine, accessor.AccessorCode.Select(code => "                " + code)));
                writer.WriteLine("            }");
            }
        }