C# Visual Studio - почему я получаю сообщение об ошибке «Не все пути кода возвращают значение»? - PullRequest
0 голосов
/ 14 июля 2020

Это мой код:

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 ()': не все пути кода возвращают значение.

Кто-нибудь знает, почему это так? Кто-нибудь может мне помочь? Спасибо

Ответы [ 4 ]

3 голосов
/ 14 июля 2020

Этот метод:

internal CommonFileDialogResult ShowDialog()
{
        
}

ничего не возвращает. Вы должны либо вернуть CommonFileDialogResult, либо выбросить исключение, например

internal CommonFileDialogResult ShowDialog()
{
    throw new NotImplementedException("Need to implement this.");
}
1 голос
/ 14 июля 2020
  internal CommonFileDialogResult ShowDialog()
    {
        
    }

CommonFileDialogResult указывает, что вы ожидаете, что метод вернет объект типа CommonFileDialogResul. решения:

  1. throw new NotImplementedException («Необходимо реализовать это.»); как показано Ei c J.
  2. return null
  3. return new CommonFileDialogResult ()
  4. изменение сигнатуры метода с CommonFileDialogResult на void.
1 голос
/ 14 июля 2020

Вы получаете следующую ошибку: Ошибка компилятора CS0161

не все пути кода возвращают значение

Метод, возвращающий значение, должен иметь оператор возврата во всех путях кода . Для получения дополнительной информации см. Методы .

Дополнительно

Методы (возвращаемые значения)

Методы с ненулевым типом возврата должны использовать ключевое слово return для вернуть значение .

Как отметил Эри c Дж. , и чтобы добавить в документацию (которая, похоже, отсутствует),

Методы с ненулевым типом возврата необходимы для использования ключевого слова return для возврата значения или выдачи исключения

Ваш метод имеет возврат

internal CommonFileDialogResult ShowDialog()
{
        
}

Либо установите значение void,

internal void ShowDialog()
{
        
}

или вернуть значение

internal CommonFileDialogResult ShowDialog()
{
    return null // just to get it to compile
}

Если это требуется для реализации через интерфейс, выбросить исключение

0 голосов
/ 14 июля 2020

это потому, что ваш код ожидает возвращаемого значения, которого нет в последней функции

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...