Каково различие между | и || операторы?

Самый простой способ сделать это - привязать событие редактирования сетки, и это позволит вам с легкостью изменить заголовок.

Я предоставил додзё, показывающее, как это сделать. https://dojo.telerik.com/anoceSux

Я просто получил доступ к «модели» редактируемого элемента, и если он считается новым, то меняю заголовок, чтобы создать или иным образом мы знаем, что это элемент, который существует, и поэтому просто поместите правку с названием продукта в заголовке.

Что касается того, что ваш API не перезагружает сетку с новыми данными, то это потому, что вы возвращаете view из его внешнего вида, а не ожидаемый JSON объект, который сетка ищет либо в форма объекта DataRequestResult или каким бы образом вы не отобразили свои данные. Предполагая, что вы отправляете / привязываете объект DataSourceRequest к контроллеру API, вы должны возвращать что-то вроде этого:

public JsonResult SomeAction([DataSourceRequest] DataSourceRequest request, T Model){
 ..do some things here....... 
 return Json(model.ToDataSourceResult(request, ModelState)); 

}

где T - ваша модель обновляемого / создаваемого элемента

[1110 ] Если что-то отсутствует или нуждается в расширении, дайте мне знать, и я обновлю ответ соответственно.

16
задан Jon Seigel 7 April 2010 в 00:58
поделиться

5 ответов

| - это побитовое или || - это логическое или же.

21
ответ дан 30 November 2019 в 17:04
поделиться

Значение

| - двоичный оператор, он будет двоичным ИЛИ битами как левых, так и правых значений.

|| является логическим оператором, он будет замыкать , когда он встречает «истину» (любое ненулевое значение, включая непустые массивы).

Примеры

print_r(1 | 2)  // 3
print_r(1 || 2) // 1

При использовании с функциями:

function numberOf($val) {
    echo "$val, ";
    return $val;
}

echo numberOf(1) | numberOf(2);  // Will print 1, 2, 3
echo numberOf(1) || numberOf(2); // Will print 1, 1
12
ответ дан 30 November 2019 в 17:04
поделиться

Подобно операторам & и &&, оператор double является оператором "короткого замыкания".

Например:

if (condition1 || condition2 || condition3) Если условие1 истинно, условия 2 и 3 НЕ будут проверяться.

if (condition1 | condition2 | condition3) Это проверяет условия 2 и 3, даже если 1 уже истинно. Поскольку ваши условия могут быть довольно дорогостоящими функциями, вы можете получить хороший

прирост производительности, используя их.

Есть одно большое предостережение: NullReferences или аналогичные проблемы. Например:

if (class! = Null && class.someVar <20) Если class имеет значение null, оператор if остановится после того, как "class! = Null" будет ложным. Если вы используете только &, он попытается проверить class.someVar, и вы получите

красивое исключение NullReferenceException. С оператором ИЛИ это может быть не такой уж большой ловушкой, поскольку маловероятно, что вы вызовете что-то плохое,

но об этом следует помнить.

Никто никогда не использует одиночные символы & или | однако, если у вас нет проекта, в котором каждое условие является функцией, которая должна быть

выполнена. Звучит как запах дизайна, но иногда (редко) это чистый способ делать что-то. Оператор & выполняет «эти 3 функции

, и если одна из них возвращает false, выполняет блок else», а оператор | выполняет "только блок else, если ни один не возвращает false" - может быть полезно

, но, как уже говорилось, часто это запах дизайна.

1
ответ дан 30 November 2019 в 17:04
поделиться

| -> бинарный оператор || -> Логический оператор или -> также логический оператор с более низким приоритетом

 $ x = false | правда; // установит $ x в целое число 
 $ x = false || правда; // установит для $ x значение true 
 $ x = false или true; // установит для $ x значение false точно так же, как: 
 ($ x = false) || верно; 
 
0
ответ дан 30 November 2019 в 17:04
поделиться

| работает с битами переменной: 2 | 4 = 6

|| работает с логическим значением переменной: 2 || 4 = ИСТИНА

0
ответ дан 30 November 2019 в 17:04
поделиться
Другие вопросы по тегам:

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