Эта библиотека синтаксического анализа веса должна решить все подобные проблемы. Мне нравится библиотека, потому что ее довольно легко расширить.
Пример синтаксического анализа:
var caseOne = Date.parseDate("Jul 8, 2005", "M d, Y");
var caseTwo = Date.parseDate("2005-07-08", "Y-m-d");
И форматирование обратно в строку (вы заметите, что оба случая дают точно такой же результат):
console.log( caseOne.dateFormat("M d, Y") );
console.log( caseTwo.dateFormat("M d, Y") );
console.log( caseOne.dateFormat("Y-m-d") );
console.log( caseTwo.dateFormat("Y-m-d") );
При рассмотрении IL использование Ildasm Вы найдете что они оба компиляция вниз к Nullable<bool>
.
Нет никакого различия между bool? b = null
и Nullable<bool> b = null
. Эти ?
просто сахар синтаксиса компилятора C#.
Получить доступ к значению bool? необходимо сделать следующее:
bool? myValue = true;
bool hasValue = false;
if (myValue.HasValue && myValue.Value)
{
hasValue = true;
}
Примечание Вы не можете просто сделать:
if (myValue)
{
hasValue = true;
}
Nullable<T>
структура, состоящая из T и небольшого флага, указывающего, допустим ли T. Nullable<bool>
имеет три возможных значения: верный, ложный и пустой.
Редактирование: А-ч, я пропустил то, что вопросительный знак после "bool" был на самом деле частью имени типа и не индикатора, что Вы задавали вопрос:). Ответ на Ваш вопрос, тогда, "да, C# bool?
является просто псевдонимом для Nullable<bool>
".
bool
тип значения, поэтому он не может содержать Нулевое значение. При обертывании какого-либо типа значения с Nullable<>
он даст ему ту способность. Кроме того, методы доступа для значения изменяются дополнительными свойствами HasValue
и Value
.
, Но к вопросу: Nullable<bool>
и bool?
псевдонимы.
Нет нет никакого различия. Таким образом:
Система. Булевская переменная-> допустимые значения: верный, ложный
bool-> искажают для Системы. Булевская переменная
Nullable< bool>-> допустимые значения: верный, ложный, пустой
bool?-> искажают для Nullable< bool>
Hope это помогает.
Пустые примитивы являются просто регулярными примитивами, обернутыми в Nullable. Любые появления об обратном являются просто компилятором и синтаксическим сахаром.