Main:并非所有代码路径都返回一个值



我正在制作列表,希望在控制台中查看它。我有一个错误,上面写着:

Main():并非所有代码路径都返回一个值。

也许你能帮我?这是我的代码:

namespace ConsoleApplication5
{
    public class DocConfig
    {
        public string Description { get; set; }
        public List<DocPart> Parts { get; set; }
​
        public class DocPart
        {
            public string Title { get; set; }
            public string TexLine { get; set; }
            public class Program
            {
                public static int Main()
                {
                    List<DocPart> Parts = new List<DocPart>();
                    var doc = new DocConfig();
                    doc.Description = "bla bla";
                    doc.Parts = new List<DocPart>();
                    doc.Parts.Add(new DocPart { Title = "aaa", TexLine = @"include{aaa.tex}" });
                    doc.Parts.Add(new DocPart { Title = "bbb", TexLine = @"include{bbb.tex}" });
                    foreach (DocPart part in doc.Parts)
                    {
                        Console.WriteLine(part.Title);
                        {
                            Console.ReadLine();
                            return 0;
                        }
                    }
                }
            }
        }
    }
}

Main的末尾返回一些东西。像这样:

public static int Main()
{
     List<DocPart> Parts = new List<DocPart>();
     var doc = new DocConfig();
     doc.Description = "bla bla";
     doc.Parts = new List<DocPart>();
     doc.Parts.Add(new DocPart { Title = "aaa", TexLine = @"include{aaa.tex}" });
     doc.Parts.Add(new DocPart { Title = "bbb", TexLine = @"include{bbb.tex}" });
     foreach (DocPart part in doc.Parts)
     {
           Console.WriteLine(part.Title);
           {
                 Console.ReadLine();
                 return 0;
           }
     }
     return -1;
}

出现此错误的原因是,当您声明方法时

public static int Main()

您声明它将返回一个int值。但是,您只能在一个可能永远不会运行的地方返回该值。例如,如果doc.Parts列表为空,它将永远不会运行。因此,您需要添加代码来确保该方法始终返回一些内容。

例如,在方法的末尾添加return -1;会使错误在这种情况下消失。

 public static int Main()
            {
                List<DocPart> Parts = new List<DocPart>();
                var doc = new DocConfig();
                doc.Description = "bla bla";
                doc.Parts = new List<DocPart>();
                doc.Parts.Add(new DocPart { Title = "aaa", TexLine = @"include{aaa.tex}" });
                doc.Parts.Add(new DocPart { Title = "bbb", TexLine = @"include{bbb.tex}" });
                foreach (DocPart part in doc.Parts)
                {
                    Console.WriteLine(part.Title);
                    {
                        Console.ReadLine();
                        return 0;
                    }
                }
                return 0;
            }

相关内容

  • 没有找到相关文章