2

我正在使用以下代码制作 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 都在不同的类文件中,但属于同一个命名空间。

4

4 回答 4

2

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

于 2015-02-22T20:44:49.960 回答
1

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

? temp

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

如果您通过调用实际方法

? ClassA.Process()

它工作得很好。

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

? temp

当调试器在您的断点处停止时。此时temp 在当前上下文中。

于 2012-04-23T18:29:12.120 回答
1

尝试

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

static class Functions
{
 public static string Test()
 {
      return "ok";
 }
}
于 2012-04-22T23:51:23.543 回答
0

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

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

返回“确定”

您的代码还有其他问题。

于 2012-04-22T17:57:01.073 回答