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