예제 #1
0
        private void OutputMethod(Definition.MethodDef m)
        {
            Func <string> generics = () =>
            {
                if (m.TypeParameters.Count == 0)
                {
                    return(string.Empty);
                }
                return("<" + string.Join(",", m.TypeParameters.Select(_ => _.Name).ToArray()) + ">");
            };

            Summary(m.Summary);

            List <string> strs = new List <string>();

            strs.Add(GetAccessLevel(m.AccessLevel));
            strs.Add(m.IsStatic ? "static " : "");
            strs.Add(GetGenericsTypeParameters(m.TypeParameters));
            strs.Add(m.IsAbstract ? "abstract " : "");
            strs.Add(GetTypeSpecifier(m.ReturnType));
            strs.Add(m.Name);

            var strs_ = string.Join(" ", strs.Where(_ => !string.IsNullOrEmpty(_)).ToArray());

            WriteLine("{0}({1})", strs_, GetParamStr(m.Parameters));

            if (m.IsAbstract)
            {
                Res.AppendLine(";");
            }
            else
            {
                WriteLine("{{");
                IndentDepth++;

                OutputStatements(m.Body);

                IndentDepth--;
                WriteLine("}}");
            }
        }
예제 #2
0
 private void OutputMethodInInterface(Definition.MethodDef m)
 {
     //Summary(m.);
     WriteLine("{0} {1}({2});", GetTypeSpecifier(m.ReturnType), m.Name, GetParamStr(m.Parameters));
 }