Member 13770588 Ответов: 2

Как вернуть строку в функцию; C#


Здравствуйте, я работаю над обучающей консольной программой и прямо сейчас пытаюсь получить метод для возврата строки из основного метода. Подобный этому:

Method... {

   if (s = "string") {
       do that;
   }

}



public static void Main(string[], args) {


       Console.Write("write something: ") // Types in "string"

       s = Console.readLine();


}


Что я уже пробовал:

Поиск кучки в интернете. Действительно трудно понять, что искать, если вы действительно не знаете, как/где/что искать. Я также пытался спросить программистов онлайн, но это никогда не бывает бесплатно...

2 Ответов

Рейтинг:
15

Afzaal Ahmad Zeeshan

Основная функция в C# может возвращать только то или другое int, или void типаж, больше ничего. Вы не можете заставить его вернуть что—либо другое, кроме этого, из-за устаревших вещей-попробуйте прочитать, Почему программы на C или C++ начинаются с int main() { }.

Тем не менее, в вашем коде вы даже не пытаетесь ничего вернуть. Вместо этого, вы есть захват входных данных. Приставка.ReadLine() используется для захвата входных данных, а затем обработки, например той, которую вы делаете—if(s = "string") Теперь, чтобы вернуть что-то, вам нужно изменить тип возвращаемой функции, и вам нужно использовать return ключевое слово для возврата значения. Вы нигде этого не делаете. Любая другая функция, возвращающая строку, будет выглядеть следующим образом,

public static string Greetings() {
    Console.WriteLine("Enter your name: ");
    string name = Console.ReadLine();

    // returns the string.
    return "Hello, " + name + "!";
}

Поэтому я бы рекомендовал немного подробнее ознакомиться с документацией по C#, чтобы вы могли понять, как это работает. :-)

Main() Возвращаемые Значения (Руководство По Программированию На C#) | Microsoft Docs[^]


Member 13770588

но я имею в виду больше, если я создам метод, который вы показали. Есть ли способ использовать "имя" в другой функции?.

например, если я хочу, чтобы приветствие было прочитано, а затем использовать его в другом методе в зависимости от того, что я пишу?

Например: общедоступные статические строки ФИО1() {

если (имя = "Саймон") {
// Код
}
}

Например: общедоступные статические строки ФИО2() {

если (имя = "Алекс") {
// Код
}
}

публичные статические строковые приветствия() {
Приставка.WriteLine("введите свое имя: ");
имя строки = консоль.Линия чтения();

}

Afzaal Ahmad Zeeshan

Нет, вот тут-то и вступает в игру scoping. Переменная ограничена в этой функции и существует только внутри этой функции. В противном случае вам нужно было бы создать свойство в классе—свойства и поля-это тема, которую вы должны изучить. Эти поля могут быть доступны из всех функций внутри класса.

Member 13770588

Спасибо! :)

Ehsan Sajjad

ну и экспалайнед. 5ед

Afzaal Ahmad Zeeshan

- Спасибо, Эхсан.

Рейтинг:
0

Patrice T

Цитата:
теперь я пытаюсь получить метод для возврата строки из основного метода.

main возвращаемая строка не существует. Все что main can return-это целое число, и это целое число не для вас, а для ОС.

На самом деле не совсем понятно, что вы хотите с этим делать.


Afzaal Ahmad Zeeshan

В C# он тоже может возвращать void, и самое интересное, что теперь он может возвращаться Task и Task<T> также благодаря поддержке асинхронных основных функций—см. Решение 1.