我对.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")));
答案 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
。