名称“temp”在当前上下文(C# 桌面应用程序)中不存在

本文关键字:桌面 应用程序 不存在 上下文 temp 名称 | 更新日期: 2023-09-27 18:31:59

我正在使用以下代码制作一个 C# 桌面应用程序:

static class ClassA
{
     public static string Process()
     {
          string temp = Functions.Test();
          return temp;
     }
}
static class Functions
{
     public static string Test()
     {
          return "ok";
     }
}

问题是变量"temp"没有从Test()函数中获得任何值。当我尝试在即时窗口中检查其值时,我收到消息"名称'temp'在当前上下文中不存在"

ClassA 和 Functions 都在单独的类文件中,但属于同一个命名空间。

名称“temp”在当前上下文(C# 桌面应用程序)中不存在

我知道这是一个较老的问题,但希望这也有助于新的开发人员: 我遇到了类似的问题,并意识到我的两个类(在两个不同的项目中)针对两个不同的框架。一旦我将它们切换到两个目标 Net Framework 4.5,它们就完美编译并且没有这个问题。

尝试

static class ClassA
{
 string temp = Functions.Test();
 public static string Process()
 {
      return temp;
 }
}
static class Functions
{
 public static string Test()
 {
      return "ok";
 }
}

我可以重现错误的唯一方法是检查

? temp

代码未运行时的即时窗口中。

如果通过以下方式调用实际方法

? ClassA.Process()

它工作得很好。

此外,如果在return temp;行上放置断点并运行程序,则"即时窗口"将在检查时给出正确的结果

? temp

当调试器在断点处停止时。在这一点上,temp将在当前上下文中。

将以下内容添加到代码中:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(ClassA.Process());
        Console.ReadLine();
    }
}

返回"确定"

您的代码还有其他问题。