«Bool» не найден в приложении .NET, работающем в Mono / XPS - PullRequest
0 голосов
/ 08 ноября 2011

Я невероятно новичок в .NET и Mono.У меня есть приложение .NET 4, которое я пытаюсь запустить локально, и я получаю ошибку компиляции, когда пытаюсь его запустить (используя xps4 в Ubuntu).В конце трассировки стека написано:

/ tmp / jeremy-temp-aspnet-0 / 3b8f3547 / App_Web_635c7158_48.cs (32,21): ошибка CS0246: имя типа или пространства имен `bool 'не удалосьбыть найденным.Вам не хватает директивы using или ссылки на сборку?

Означает ли это, что он не распознает логический тип?Поиск в Google не сильно помог.

Обновление - вот код:

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

Ответы [ 2 ]

3 голосов
/ 08 ноября 2011

Когда вы ставите перед идентификатором (например, именем типа) значение @, вы сообщаете компилятору, что, хотя оно выглядит как зарезервированное слово, оно относится к чему-то определенному в вашей программе.

Если у вас не определено что-то вроде

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 голос
/ 08 ноября 2011

Ваш тип возврата должен быть bool вместо @bool.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...