![](/img/trans.png)
[英]When creating a function in C# returning a value with many if/if else statements I get the error "not all code paths return a value"
[英]C# Visual Studio - why do I get an error “Not all code paths return a value”?
这是我的代码:
using Microsoft.WindowsAPICodePack.Dialogs;
using System;
namespace andyify
{
internal class CommonOpenFileDialog
{
internal readonly string FileName;
public string IntialDirectory { get; internal set; }
public bool IsFolderPicker { get; internal set; }
internal CommonFileDialogResult ShowDialog()
{
}
}
}
我收到了这个错误:
错误 CS0161
'CommonOpenFileDialog.ShowDialog()':并非所有代码路径都返回值。
有人知道为什么吗? 有人可以帮帮我吗? 谢谢
这种方法:
internal CommonFileDialogResult ShowDialog()
{
}
不返回任何东西。 您必须返回CommonFileDialogResult
或抛出异常,例如
internal CommonFileDialogResult ShowDialog()
{
throw new NotImplementedException("Need to implement this.");
}
您收到以下错误编译器错误 CS0161
并非所有代码路径都返回值
返回值的方法必须在所有代码路径中都有 return 语句。 有关详细信息,请参阅方法。
此外
具有非 void 返回类型的方法需要使用 return 关键字来返回值。
正如Eric J.所指出的并添加到文档中(似乎确实缺少),
具有非 void 返回类型的方法需要使用 return 关键字来返回值或抛出异常
你的方法有回报
internal CommonFileDialogResult ShowDialog()
{
}
要么将其设置为无效,
internal void ShowDialog()
{
}
或返回一个值
internal CommonFileDialogResult ShowDialog()
{
return null // just to get it to compile
}
如果这是需要由接口实现的,则抛出异常
internal CommonFileDialogResult ShowDialog()
{
}
CommonFileDialogResult 表示您希望该方法返回类型为 CommonFileDialogResul 的 object。 解决方案:
这是因为您的代码需要最后一个 function 中不存在的返回值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.