CSharpComments() публичный статический Метод

public static CSharpComments ( string name, string padding ) : IEnumerable
name string
padding string
Результат IEnumerable
Пример #1
0
        public override string ToCSharpCode(int padding = 0)
        {
            string        paddingStr = String.Concat(Enumerable.Repeat(" ", padding));
            List <string> lines      = new List <string> ();

            lines.AddRange(Packages.GetUsingStatements(Packages.GetPackage(name)));

            if (Packages.IsInPackage(name))
            {
                lines.Add(paddingStr + "namespace " + Packages.GetPackage(name));
                lines.Add(paddingStr + "{");
                paddingStr += "    ";
                padding    += 4;
            }

            lines.AddRange(Comments.CSharpComments(commentsKey, paddingStr));
            lines.Add(paddingStr + Publicity.ToCode("", " ") + Virtuality.ToCode("", " ") + "enum " + name);
            lines.Add(paddingStr + "{");
            foreach (string literal in values)
            {
                lines.AddRange(Comments.CSharpComments(Comments.Key(name, literal), paddingStr + "    "));
                lines.Add(paddingStr + "    " + literal + ",");
            }
            lines.Add(paddingStr + "}");

            if (Packages.IsInPackage(name))
            {
                padding   -= 4;
                paddingStr = paddingStr.Substring(4);
                lines.Add(paddingStr + "}");
            }

            return(string.Join("\n", lines));
        }
Пример #2
0
        public string ToCSharpCode(int padding, Virtuality virt, UmlClass inClass)
        {
            if (virt == CSharpUML.Virtuality.None)
            {
                virt = Virtuality;
            }
            string        paddingStr = String.Concat(Enumerable.Repeat(" ", padding));
            List <string> lines      = new List <string> ();

            lines.AddRange(Comments.CSharpComments(commentsKey, paddingStr));
            string uml = paddingStr
                         + ((inClass != null && inClass.type == ClassType.Interface)
                ? ""
                : Publicity.ToCode("", " ") + Virtuality.ToCode("", " "));

            uml += type.ToCSharpType() + " " + name + " { get; set; }";
            lines.Add(uml);
            return(string.Join("\n", lines));
        }
Пример #3
0
        public string ToCSharpCode(int padding, Virtuality virt, UmlClass inClass)
        {
            if (virt == CSharpUML.Virtuality.None)
            {
                virt = Virtuality;
            }
            string        paddingStr = String.Concat(Enumerable.Repeat(" ", padding));
            List <string> lines      = new List <string> ();

            lines.AddRange(Comments.CSharpComments(commentsKey, paddingStr));
            string uml = paddingStr;

            // public, virtual
            string _keywords = Comments.GetCommentParameter(commentsKey, "keywords");

            if (_keywords != null)
            {
                uml += _keywords.TrimAll().ToCode("", " ");
            }
            else if (inClass != null && inClass.type == ClassType.Interface)
            {
                uml += "";
            }
            else
            {
                uml += Publicity.ToCode("", " ") + virt.ToCode("", " ");
            }

            // return type
            string _returntype = Comments.GetCommentParameter(commentsKey, "returntype");

            if (_returntype != null)
            {
                uml += _returntype.ToCSharpType() + " ";
            }
            else if (IsContructor)
            {
                uml += "";
            }
            else if (returntype.Length > 0)
            {
                uml += returntype.ToCSharpType().ToCode("", " ");
            }
            else
            {
                uml += "void ";
            }

            // name
            string _name = Comments.GetCommentParameter(commentsKey, "name");

            if (_name != null)
            {
                uml += _name;
            }
            else
            {
                uml += name;
            }

            // index operator [ ]
            if (name == "this")
            {
                uml += " [" + string.Join(", ", parameters) + "]";
                lines.Add(uml);
                lines.Add(paddingStr + "{");
                lines.Add(paddingStr + "    " + "get { throw new System.NotImplementedException(); }");
                lines.Add(paddingStr + "    " + "set { throw new System.NotImplementedException(); }");
                lines.Add(paddingStr + "}");
            }
            // normal method
            else
            {
                uml += " (";
                string _parameters = Comments.GetCommentParameter(commentsKey, "parameters");
                if (_parameters != null)
                {
                    uml += _parameters;
                }
                else
                {
                    for (int i = 0; i < parameters.Length; ++i)
                    {
                        if (i > 0)
                        {
                            uml += ", ";
                        }
                        if (parameters [i].Contains(" "))
                        {
                            String[] p = parameters [i].Split(new char[] { ' ' }, 2);
                            uml += p [0].ToCSharpType() + " " + p [1];
                        }
                        else
                        {
                            uml += parameters [i].ToCSharpType() + " " + parameters [i].ToLower();
                        }
                    }
                }
                uml += ")";
                if (uml.Contains("ModelFactory") && uml.Contains("Func<"))
                {
                    uml = paddingStr + "public ModelFactory (Func<GameScreen, GameModelInfo, GameModel> createModel)";
                }

                string _base = Comments.GetCommentParameter(commentsKey, "base");
                if (_base != null)
                {
                    uml += "\n" + paddingStr + "    : base(" + _base.TrimAll() + ")";
                }

                if (inClass.type == ClassType.Interface)
                {
                    lines.Add(uml + ";");
                }
                else
                {
                    lines.Add(uml);
                    lines.Add(paddingStr + "{");
                    lines.Add(paddingStr + "    " + "throw new System.NotImplementedException();");
                    lines.Add(paddingStr + "}");
                }
            }
            return(string.Join("\n", lines));
        }
Пример #4
0
        public override string ToCSharpCode(int padding = 0)
        {
            string        paddingStr = String.Concat(Enumerable.Repeat(" ", padding));
            List <string> lines      = new List <string> ();

            lines.AddRange(Packages.GetUsingStatements(Packages.GetPackage(name)));

            if (Packages.IsInPackage(name))
            {
                lines.Add(paddingStr + "namespace " + Packages.GetPackage(name));
                lines.Add(paddingStr + "{");
                paddingStr += "    ";
                padding    += 4;
            }

            lines.AddRange(Comments.CSharpComments(commentsKey, paddingStr));
            lines.Add(
                paddingStr + Publicity.ToCode("", " ") + Virtuality.ToCode("", " ") + type.ToCode("", " ")
                + name
                + (bases.Length > 0 ? " : " + string.Join(", ", bases).Replace("XNA.", "") : "")
                );
            lines.Add(paddingStr + "{");
            lines.Add("");

            IEnumerable <UmlAttribute> attributes  = Content.OfType <UmlAttribute> ();
            IEnumerable <UmlMethod>    contructors = Content.OfType <UmlMethod> ().Where((m) => m.Name == Name);
            IEnumerable <UmlMethod>    methods     = Content.OfType <UmlMethod> ().Where((m) => m.Name != Name);

            if (attributes.Count() > 0)
            {
                lines.Add(paddingStr + "    #region Properties");
                lines.Add("");
                foreach (UmlAttribute obj in attributes)
                {
                    lines.Add(obj.ToCSharpCode(padding + 4, Virtuality.Virtual, this));
                    lines.Add("");
                }
                lines.Add(paddingStr + "    #endregion");
                lines.Add("");
            }

            if (contructors.Count() > 0)
            {
                lines.Add(paddingStr + "    #region Constructors");
                lines.Add("");
                foreach (UmlMethod obj in contructors)
                {
                    obj.IsContructor = true;
                    lines.Add(obj.ToCSharpCode(padding + 4, Virtuality.None, this));
                    lines.Add("");
                }
                lines.Add(paddingStr + "    #endregion");
                lines.Add("");
            }

            if (methods.Count() > 0)
            {
                lines.Add(paddingStr + "    #region Methods");
                lines.Add("");
                foreach (UmlMethod obj in methods)
                {
                    lines.Add(obj.ToCSharpCode(padding + 4, Virtuality.Virtual, this));
                    lines.Add("");
                }
                lines.Add(paddingStr + "    #endregion");
                lines.Add("");
            }

            lines.Add(paddingStr + "}");

            if (Packages.IsInPackage(name))
            {
                padding   -= 4;
                paddingStr = paddingStr.Substring(4);
                lines.Add(paddingStr + "}");
            }

            return(string.Join("\n", lines));
        }