Я прочитал некоторый скрипт и, кажется, сложно понять. Надежда кто-то может объяснить, почему Первый:Какая разница между a == b и (a & b) == b
public static bool ContainsDestroyWholeRowColumn(BonusType bt)
{
return (bt & BonusType.DestroyWholeRowColumn)
== BonusType.DestroyWholeRowColumn;
}
Почему не пишут bt.Equal(BonusType.DestroyWholeRowColumn)
или bt == BonusType.DestroyWhoeRowColumn
? Второе:
public bool IsSameType(Shape otherShape)
{
if (otherShape == null || !(otherShape is Shape))// check otherShape is not null and it is Shape
throw new ArgumentException("otherShape");
return string.Compare(this.Type, (otherShape as Shape).Type) == 0;
}
если метод ввода не правильный тип. Я думаю, что это будет начеку немедленно, поэтому они также должны проверить тип объекта Последнее:
//if we are in the middle of the calculations/loops
//and we have less than 3 matches, return a random one
if(row >= Constants.Rows/2 && matches.Count > 0 && matches.Count <=2)
return matches[UnityEngine.Random.Range(0, matches.Count - 1)];
Я думал это код всегда возвращает 0; Что случилось? Писатель был не прав, или я пропустил некоторые базовые знания. Пожалуйста, помогите мне, если вы знаете. Спасибо
'3 & 1 == 1', но' 3! = 1'. – Mat
@Mat: Здесь нет целочисленных типов (я думаю, вопрос не говорит). – Thilo
Да. a и b не являются целыми, в этом случае это BonusType –