Что такое истинные и ложные операторы в C#?

Я думаю, что вы уже читали эту статью: https://github.com/angular/angular-cli/issues/8798

. Если нет, прочитайте заметьте, что TS также изменил файл package.json вручную, чтобы решить его проблему.

Так как мы не увидели фактического сообщения об ошибке в вашей сборке, мы не можем сделать вывод, если проблема имеет те же обстоятельства, что и в ссылке. Поэтому я хочу решить вашу проблему следующим образом:

  1. Удалить папку npm_modules
  2. Переместить файл package.json в резервную папку (на случай, если она нам понадобится). назад) - поэтому он не должен существовать в папке вашего проекта, поскольку он будет сгенерирован, когда вы выполните следующие шаги
  3. Выполните установку npm
  4. Выполните сборку
  5. Выполните задание serve

После вышесказанного или, если вы снова включите его, я предлагаю посмотреть разницу между вашим старым package.json и новым файлом package.json и сообщить нам, что вы заметили, поскольку это всегда хорошо отдать.

14
задан John Feminella 26 March 2009 в 16:20
поделиться

5 ответов

Истинные и ложные операторы могут быть перегружены, чтобы позволить классу представлять свое собственное состояние как TRUE или FALSE, например:

public class MyClass
{
    //...
    public static bool operator true(MyClass op)
    {
        // Evaluation code...
    }

    public static bool operator false(MyClass op)
    {
        // Evaluation code...
    }
}

И Вы сможете использовать оператор в булевых выражениях:

MyClass test = new MyClass(4, 3);
if (test)
    Console.WriteLine("Something true");
else
    Console.WriteLine("Something false");

string text = test ? "Returned true" : "Returned false";
11
ответ дан 1 December 2019 в 08:53
поделиться

Вы перегрузились бы true или false операторы, если Вы определяли специализированное булево значение. Это не обычно необходимо, однако, который является, почему они не кажутся полезными. Например, в классе булевской переменной нечеткой логики, у Вас могло бы быть что-то вроде этого:

// Represents a boolean that can store truth values in a range from [0, 1], with
//   a value of one indicating complete metaphysical certitude and a value of
//   zero indicating complete impossibility.
public class FuzzyBoolean {
// ...
   public static bool operator true(FuzzyBoolean fb) {
      return fb.TruthValue > 0;
   }

   public static bool operator false(FuzzyBoolean fb) {
      return fb.TruthValue == 0;
   }
// ...
}

Обратите внимание на это, если Вы перегружаетесь true, необходимо также перегрузиться false (и наоборот).

Конечно, существуют также true и false литералы, эти два литеральных значения можно присвоить булеву экземпляру. Не путайте их с упомянутыми выше операторами. Более существенный пример того, как Вы использовали бы это, вовлекая булевские переменные в базу данных, дан в документах MSDN здесь.

12
ответ дан 1 December 2019 в 08:53
поделиться

Они позволяют Вам перегружать их использующий синтаксис перегрузки оператора так, чтобы тип, который Вы определяете, мог быть интерпретирован как булевская переменная.

2
ответ дан 1 December 2019 в 08:53
поделиться

Посмотрите пример, на который ссылаются, в статье

Спецификация языка C# - тип булевской переменной Базы данных

По существу эти операторы позволяют экземпляру типа использоваться в булевой условной логике такой как && и ||.

4
ответ дан 1 December 2019 в 08:53
поделиться

Разрешение Вам использовать пользовательский тип в качестве части логических операций; Например, как часть, если или в то время как оператор.

0
ответ дан 1 December 2019 в 08:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: