在Mono / XPS上运行的.NET应用程序中找不到“Bool”

时间:2011-11-08 18:22:34

标签: asp.net mono

我对.NET和Mono非常陌生。我有一个.NET 4应用程序,我试图在本地运行,当我尝试运行它时(在Ubuntu上使用xps4)我收到了编译错误。在堆栈跟踪结束时,它说:

/tmp/jeremy-temp-aspnet-0/3b8f3547/App_Web_635c7158_48.cs(32,21):错误CS0246:找不到类型或命名空间名称“bool”。您是否缺少using指令或程序集引用?

这是否意味着它无法识别布尔类型?谷歌搜索没什么帮助。

更新 - 以下是代码:

public virtual @bool ShowRecentPlans {
     get {
        return ((@bool)(this.GetPropertyValue("ShowRecentPlans")));

2 个答案:

答案 0 :(得分:3)

当您使用@为标识符(如类型名称)添加前缀时,您告诉编译器,即使它看起来像一个保留字,它也指的是程序中定义的内容。 / p>

除非您在

之类的地方定义了某些内容
public class @bool
{
...
}

然后这不会起作用。

尝试

public virtual bool ShowRecentPlans { 
     get { 
        return (bool)(this.GetPropertyValue("ShowRecentPlans")); 
     }
}

例如,如果您想使用关键字new作为标识符,则可以:

int new = 5; /// error!
int @new = 5; /// compiles

@当然也用于告诉编译器应该如何解释字符串。

// throws an error because \p and \m look like formatting sequences
var path = "c:\pub\myFile.txt"; 
// compiles 
var path = @"c:\pub\myFile.txt"; 

另外,我只想问:是什么让你使用@bool代替bool开始?

(并且,对于记录,使用关键字作为标识符是一个非常非常糟糕的主意。)

答案 1 :(得分:1)

您的返回类型应为bool,而不是@bool