Я создаю консоль разработки для игры и хотел бы добавить десериализацию Json из ввода в консоль, чтобы я мог добавлять сущности в мир, как мне заблагорассудится.Рекомендации по переменному присваиванию
Мне любопытно, является ли этот образец кода плохой практикой или нет. Я просто проверяю, имеет ли свойство значение null. Если он равен нулю, я устанавливаю его в параметр, иначе он будет настроен на себя. Существуют ли случаи, когда это может вызвать серьезную проблему?
public class Entity
{
public Entity(int id, float health, Vector3 location)
{
Init(id, health, location);
}
public void Init(int id, float health, Vector3 location)
{
Id = id;
Health = health;
Location = Location ?? location;
}
public int Id { get; set; }
public float Health { get; set; }
public Vector3 Location { get; set; }
}
Кроме того, есть ли способ сделать что-то подобное в одной строке?
Location = ?? location;
Таким образом, он не должен устанавливать местоположение для себя, когда оно не является нулевым?
Он не может иметь местоположение уже при его построении. – Magus
Разве не 'Vector3' является структурой? Если это так, вы не сможете проверить значение «null» в любом случае, если вы не объявите «Vector3?» (Значение NULL). – IAbstract
Я не понимаю, что вы намереваетесь с 'Location = Location ?? ...; 'Не имеет смысла, потому что он всегда нулевым в этой точке исполнения. – JeffRSon