繁体   English   中英

C# Visual Studio - 为什么会出现错误“并非所有代码路径都返回值”?

[英]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。 解决方案:

  1. throw new NotImplementedException("需要实现这个。"); 如 Eic J 所示。
  2. 返回 null
  3. 返回新的 CommonFileDialogResult()
  4. 将方法签名从 CommonFileDialogResult 更改为 void。

这是因为您的代码需要最后一个 function 中不存在的返回值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM