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