Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 变量已声明,但从未使用过_C# - Fatal编程技术网

C# 变量已声明,但从未使用过

C# 变量已声明,但从未使用过,c#,C#,我目前正在从事一个项目,该项目正在创建一个快速翻译程序,使用谷歌的API来处理文本。但我一直遇到警告CS0168,不知道如何修复它。代码如下: using System; using Google.Cloud.Translation.V2; namespace Program { public partial class Translate { [STAThread] private static void Main() {

我目前正在从事一个项目,该项目正在创建一个快速翻译程序,使用谷歌的API来处理文本。但我一直遇到警告CS0168,不知道如何修复它。代码如下:

using System;
using Google.Cloud.Translation.V2;

namespace Program
{
    public partial class Translate
    {
        [STAThread]
        private static void Main()
        {

            Console.WriteLine("Write text to become cursed");
            string Phrase = Console.ReadLine();

            string TranslateText() //this variable is the problem
            {
                TranslationClient client = TranslationClient.Create();
                //this block repeats with the language changing each time
                var response = client.TranslateText(
                    text: Phrase,
                    targetLanguage: "language",
                    sourceLanguage: "language");
                Console.WriteLine(response.TranslatedText);
                Phrase = response.TranslatedText;
                //end of reapeat
                return response.TranslatedText;
            }
        }
    }
}

即使我忽略了警告,程序也不会运行。

您的代码存在两个主要问题:

  • 正如其他人所指出的,您声明了一个局部函数,但从未使用过它

  • 应用程序立即退出,因为它已完成所有工作。您需要添加
    Console.ReadLine()
    控制台.ReadKey()以防止其关闭

  • 试着这样做:

    static void Main(string[] args)
    {
        Console.WriteLine("Write text to become cursed");
        string Phrase = Console.ReadLine();
    
        string TranslateText()
        {
            TranslationClient client = TranslationClient.Create();
            //this block repeats with the language changing each time
            var response = client.TranslateText(
                text: Phrase,
                targetLanguage: "language",
                sourceLanguage: "language");
            Console.WriteLine(response.TranslatedText);
            Phrase = response.TranslatedText;
            //end of reapeat
            return response.TranslatedText;
        }
    
        string translatedText = TranslateText();
        Console.WriteLine("The translated text is: " + translatedText);
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
    
    static void Main(string[] args)
    {
        Console.WriteLine("Write text to become cursed");
        string phrase = Console.ReadLine();
    
        string translatedText = TranslateText(phrase);
        Console.WriteLine("The translated text is: " + translatedText);
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
    
    static string TranslateText(string phrase)
    {
        TranslationClient client = TranslationClient.Create();
        //this block repeats with the language changing each time
        var response = client.TranslateText(
            text: phrase,
            targetLanguage: "language",
            sourceLanguage: "language");
        Console.WriteLine(response.TranslatedText);
        //end of reapeat
        return response.TranslatedText;
    }
    
    尽管如此,局部函数可能不是处理此问题的最佳方法。相反,您可以将它移到
    Main
    之外,并向其添加一个字符串参数,以便将短语作为参数传递给它。在本例中,您的代码如下所示:

    static void Main(string[] args)
    {
        Console.WriteLine("Write text to become cursed");
        string Phrase = Console.ReadLine();
    
        string TranslateText()
        {
            TranslationClient client = TranslationClient.Create();
            //this block repeats with the language changing each time
            var response = client.TranslateText(
                text: Phrase,
                targetLanguage: "language",
                sourceLanguage: "language");
            Console.WriteLine(response.TranslatedText);
            Phrase = response.TranslatedText;
            //end of reapeat
            return response.TranslatedText;
        }
    
        string translatedText = TranslateText();
        Console.WriteLine("The translated text is: " + translatedText);
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
    
    static void Main(string[] args)
    {
        Console.WriteLine("Write text to become cursed");
        string phrase = Console.ReadLine();
    
        string translatedText = TranslateText(phrase);
        Console.WriteLine("The translated text is: " + translatedText);
        Console.WriteLine("Press any key to exit.");
        Console.ReadKey();
    }
    
    static string TranslateText(string phrase)
    {
        TranslationClient client = TranslationClient.Create();
        //this block repeats with the language changing each time
        var response = client.TranslateText(
            text: phrase,
            targetLanguage: "language",
            sourceLanguage: "language");
        Console.WriteLine(response.TranslatedText);
        //end of reapeat
        return response.TranslatedText;
    }
    

    “不会运行”是什么意思?显示编译器给你的完整消息,并解释当你忽略警告并尝试运行程序时会发生什么。也许你可以在最后一行forMain函数@KarlKnechtel中放一个Console.Read(),我的意思是程序运行,但当我输入任何文本时会关闭。我忽略它时也会发生同样的情况。看起来您声明了一个名为
    TranslateText()
    (位于
    Main()
    )的本地函数,它从未被调用。
    string TranslateText()
    是一个函数变量,该函数刚刚定义,从未被调用。请回答这个问题,我猜OP对C#来说是比较新的。因此,我建议显示一个不使用本地函数的选项。@mjwills感谢您的建议!在答案中添加了这一点。