【问题标题】:C# - Variable does not exists in current contextC# - 当前上下文中不存在变量
【发布时间】:2012-04-13 13:18:21
【问题描述】:

我有一个似乎无法解决的问题。

我创建了一个名为 test 的类函数,并在函数中声明了一个变量。 在下一行,我用一个字符串填充函数。

在调试过程中变量没有被声明,我在 VS 中的变量观察器告诉我该变量在当前上下文中不存在。

你们能帮我解决这个问题吗?

这是我的代码:

public void Test()
{
    string DirectoryPath;
    DirectoryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.InternetCache);
}

【问题讨论】:

  • 请检查您的问题。 WHich 是您用字符串或其他内容填充的变量???无法理解!

标签: c# visual-studio variables scope declare


【解决方案1】:

我的猜测是您使用的是发布配置 - 优化器可能已删除该变量,因为它除了用于调试之外毫无意义。你给它赋值,但从不读取它。在 Debug 配置中,我希望它没问题(但可能会产生警告)。

编辑:当然,这是假设您 Test() 方法中看不到变量。如果Test() 已经完成,那么 Likurg 的回答可能更合适。

【讨论】:

  • @NikhilAgrawal:它有点让我感到惊讶,但我认为没有理由不这样做 - 发布版本旨在优化运行,而不是调试。 ..如果变量毫无意义,为什么要对它做任何事情?方法调用仍然需要执行,但不需要将值分配回变量。
  • 天啊...太简单了...谢谢乔恩!
【解决方案2】:

如果我没记错的话你想这样做

    public class MyTest
    {
        string DirectoryPath = "";
        public void Test()
        {
            DirectoryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.InternetCache);
        }
        public void UseString()
        {
            //Use DirectoryPath
        }
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 1970-01-01
    • 2018-03-21
    相关资源
    最近更新 更多