Main:并不是所有的代码path都返回一个值

我正在列表,并希望在控制台中查看它。 我有一个错误,它说:

Main():不是所有的代码path都返回一个值。

也许你可以帮我吗? 这是我的代码:

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; }