Код: Выделить всё
if (prevActivity != null)
{
// not null
}
else
{
// null
}
Я проверяю, что это в обновлении моно-поведения, по какой-то причине оно всегда оказывается в блоке 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
Мобильная версия