嵌入式声明不能是声明.Net 2.0 vs 4.0

时间:2013-05-15 07:10:23

标签: c# declaration

我的代码中有以下声明在.net框架工作2.0中正常工作,最近我将项目升级到框架工作4.0并且我得到了构建错误说

  

“嵌入式声明不能是声明”

知道这里有什么问题吗?

const int sNoPrompt = 0x1;
const int sUseFileName = 0x2;
const Int32 sEmbedFonts = 0x10;
const int MultilingualSupport = 0x80;

3 个答案:

答案 0 :(得分:2)

代码在框架4.0中完美运行,可能在代码的其他行中存在问题。

答案 1 :(得分:2)

我明白了,声明正好在声明之上,没有花括号。 Whcih导致错误。我刚删除了IF,因为在我的情况下没有必要。现在它工作正常。

答案 2 :(得分:0)

我之前正在使用以下代码正常工作。

if (output == "Success")
   terminate();

Configuration config = 
      ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
var setting = config.AppSettings.Settings["PATH"];

由于需求的变化,我注释掉函数调用terminate()

if (output == "Success")
   //terminate();

Configuration config = 
      ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
var setting = config.AppSettings.Settings["PATH"];

这会在配置变量声明行中抛出错误嵌入语句不能是声明或标记语句。并且抛出了另一个错误在设置变量声明行中使用未分配的局部变量'config'

由于注释了terminate(),它会尝试将下一个语句作为if条件块。

解决方案是在条件阻止时注释掉。

//if (output == "Success")
   //terminate();

Configuration config = 
      ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
var setting = config.AppSettings.Settings["PATH"];

另一种解决方案是根据要求放置花括号。

if (output == "Success")
{
   //terminate();

    Configuration config = 
       ConfigurationManager.OpenExeConfiguration(System.Windows.Forms.Application.ExecutablePath);
    var setting = config.AppSettings.Settings["PATH"];
}