Как взять метод void, который принимает readline и запускает его через массив, и назначить его строковой переменной

#c# #string #console-application #void

#c# #строка #консольное приложение #void

Вопрос:

Здравствуйте, у меня есть консольное приложение, которое успешно выполняет ввод через массив, содержащий плохие слова, и если есть плохое слово, оно выводит некоторый текст, а затем завершает работу приложения. Теперь я хочу посмотреть, что я могу сделать с DetectBW(), включая присвоение его строке, хотя DetectBW() является типом void и ничего не возвращает, поэтому присвоение его строке невозможно, если оно написано так

НАПРИМЕР. string Name = DetectBW();

Вот мой код для дальнейшего объяснения

 namespace CleanApp
{
    class Application
    {
  

Эта область содержит плохие слова. Я написал это в противном случае, в нем указан целый список плохих слов, которые не были бы хорошими по очевидной причине.

 //profanityArray()
  

Эта область содержит числа 0-318, включая 318

 //ProNumArray() 
  

Это основной метод

 #region//Main() Put everything thats finished in here to output it to Console Apllication.
        static void Main(string[] args)
        {
            string[] Sarray = profanityArray();

            int[] Iarray = ProNum();
            // infinite loop that writes "Ask A question." then accepts a line of text from user (DetectBW())
            while (true)
            {
                Console.WriteLine("Ask A question.");
                DetectBW();

            }


        }
        #endregion
  

Это метод DetectBW(), он принимает строковый метод PlayerInput() (консоль.Readline) и запускает его через profanityArray и обнаруживает, содержит ли PlayerInput() какие-либо плохие слова в profanityArray.

 #region // DetectBW()
        static void DetectBW()

        {

            string PI = PlayerInput();

            string[] PIA = profanityArray();

            foreach(int i in ProNum())

            {

                if(PI.ToLower().Contains(PIA[i]))

                {

                    if (PI.ToLower().Contains(" " PIA[i] " "))

                    {

                        Console.WriteLine(PI   " contains a bad word(s)!");

                        Console.WriteLine("If you can't be polite then get off!!");

                        Environment.Exit(0);

                        break;

                    }

                    if (PI.ToLower().Contains(PIA[i] " ")|| PI.ToLower().Contains(" "   PIA[i]))

                    {

                        Console.WriteLine(PI   " contains a bad word(s)!");

                        Console.WriteLine("If you can't be polite then get off!!");

                        Environment.Exit(0);

                        break;

                    }

                 }

             }

          }
        #endregion
  

Эта область — PlayerInput() это строковый метод, о котором я говорил.

 #region// PlayerInput()
        static string PlayerInput()

        {

            string S = Console.ReadLine();

            return S;

        }
        #endregion
  

Именно здесь я планирую использовать DetectBW(), запустить его и использовать тот же playerInput(), который используется в DetectBW(), и назначить его строковой переменной для последующего использования.

 static void App()
        {
            Console.WriteLine("What is you name?");

            // This is where i need Help!!
        }

    }

}
  

Итак, это мой вопрос:
1.
Я знаю, что я не могу присвоить void строковой переменной, но есть ли способ использовать тот же playerInput(), который используется в DetectBW() , поэтому я знаю, что в нем нет плохих слов, и присвоить его строковой переменной name .

Комментарии:

1. Хм .. измените метод, чтобы возвращать список или массив? Я не понимаю, что вы хотите сделать

2. Зачем вы это делаете, void если вам нужно что-то вернуть?

3. Возьмите ввод проигрывателя за пределами DetectBW и передайте его вместо этого — тогда вы можете использовать его вне метода: var input = // getplayerinput; DetectBW(input); DoOtherThingsWithInput(input);

4. Если предполагается возвращать некоторые типы, подпись должна быть изменена на эту (удалить void ). Если вы хотите задать значения в App методе, его можно присвоить static типу и использовать в static методах.

5. Вы также можете использовать выходные параметры , но я не понимаю, в чем смысл