Проверка Null не работает должным образом в C#C#

Место общения программистов C#
Ответить
Anonymous
 Проверка Null не работает должным образом в C#

Сообщение Anonymous »

У меня есть простая проверка на ноль одного объекта, это что-то вроде:

Код: Выделить всё

if (prevActivity != null)
{
// not null
}
else
{
// null
}
Я проверяю, что это в обработчике обновления моно-поведения, по какой-то причине оно всегда оказывается в блоке else, даже если объект явно не равен нулю.
Я проверяю, что это в обновлении моно-поведения, по какой-то причине оно всегда оказывается в блоке else, даже если объект явно не равен нулю. p>
Это снимок экрана, на котором я использую отладку:
[img]https://i. sstatic.net/ZX191CmS.png[/img]

Я делаю что-то не так? Я думал, что он каким-то образом мутировал, но не думаю, что это так, поскольку я установил его вот так:

Код: Выделить всё

if (currentActivity != null && !currentActivity.Equals(prevActivity))
{
prevActivity = new Activity(currentActivity);
}
Вот как выглядит мой класс активности:

Код: Выделить всё

public class Activity {
public ActivityName activityName;
public string label;
public ActivityState state;
public bool conditionsMetToPerform;
// Note as of current design priority should be discreet for a particular unit
public int weigth { get; private set; }
public int energyCost { get; private set; }

public Activity(ActivityName activityName, string label, int weigth) {
this.activityName = activityName;
this.label = label;
this.weigth = weigth;
this.state = ActivityState.NotStarted;
this.conditionsMetToPerform = false;
}

public Activity(Activity activity) {
this.activityName = activity.activityName;
this.label = activity.label;
this.weigth = activity.weigth;
this.state = activity.state;
this.conditionsMetToPerform = activity.conditionsMetToPerform;
this.energyCost = activity.energyCost;
}

public void setEnergyCost(int energyCost) {
this.energyCost = energyCost;
}
public enum ActivityName {
Wander, BuyHealing, BuyArmor, BuyWeapon, Hunt, Flee, Fight, Berserk, RestAtHome, GoHome, Raid, Refuge, VisitBlacksmith
}

public enum ActivityState {
NotStarted, InProgress, Completed, Abandoned
}
}
Даже если он мутировал, не знаю, почему отладка ведет себя так, как при переходе. Может быть, я что-то глупое упускаю из виду?

Подробнее здесь: https://stackoverflow.com/questions/792 ... in-c-sharp
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»