Кажется, что метод destroy разработан неправильно, и неясно, почему у вас нет ошибок в браузере во время выполнения: переменная this.app обнуляется раньше, чем удаляются все дочерние элементы из нее [ 115] while (this.app.children [0])
Для начала я бы порекомендовал изменить метод следующим образом:
destroy(){
while(this.app.children[0]) {
this.app.removeChild(this.app.children[0]);
}
this.app.destroy(true);
this.app = null;
this.renderer.view.destroy( true );
this.renderer.view = null;
this.renderer.destroy( true );
this.renderer = null;
console.log('PIXI APP APPENDED:', this.app);
}
Также убедитесь, что ваши ошибки не связаны с тем, что подростки все еще активны, но их цели-подростки уже аннулированы / удалены / уничтожены. Если это так, то в дополнение к удалению визуальных объектов вам нужно остановить / уничтожить всех подростков.
Нет, нет. DateTime
представляет собой некоторый момент времени, который состоит из даты и времени. Однако вы можете получить часть даты через свойство Date
(которое является другим DateTime
с временем, установленным в 00:00:00
).
И вы можете получить отдельные свойства даты через День
, Месяц
и Год
.
К сожалению, нет в .Net BCL. Даты обычно представляются в виде объекта DateTime с временем, установленным на полночь.
Как вы можете догадаться, это означает, что у вас есть все сопутствующие проблемы с часовым поясом вокруг него, даже если для объекта Date вам совершенно не нужно обрабатывать часовой пояс. .
Создать класс-оболочку. Примерно так:
public class Date:IEquatable<Date>,IEquatable<DateTime>
{
public Date(DateTime date)
{
value = date.Date;
}
public bool Equals(Date other)
{
return other != null && value.Equals(other.value);
}
public bool Equals(DateTime other)
{
return value.Equals(other);
}
public override string ToString()
{
return value.ToString();
}
public static implicit operator DateTime(Date date)
{
return date.value;
}
public static explicit operator Date(DateTime dateTime)
{
return new Date(dateTime);
}
private DateTime value;
}
И выставьте любое значение
, которое вы хотите.
Тип Date - это просто псевдоним типа DateTime, используемый VB.NET (например, int становится Integer). Оба этих типа имеют свойство Date, которое возвращает объект с частью времени, установленной на 00:00:00.
DateTime имеет свойство Date , которое можно использовать для выделения части даты. Метод ToString также хорошо справляется с отображением части даты, только когда часть времени пуста.
У объекта DateTime есть свойство, которое возвращает только часть даты значения.
public static void Main()
{
System.DateTime _Now = DateAndTime.Now;
Console.WriteLine("The Date and Time is " + _Now);
//will return the date and time
Console.WriteLine("The Date Only is " + _Now.Date);
//will return only the date
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
Вы можете вернуть DateTime, где часть времени равна 00:00:00, и просто игнорировать ее. Даты обрабатываются как целые метки времени, поэтому имеет смысл объединить дату со временем, так как оно в любом случае присутствует в целом числе.
For this, you need to use the date, but ignore the time value.
Ordinarily a date would be a DateTime with time of 00:00:00
The DateTime
type has a .Date
property which returns the DateTime
with the time value set as above.
Вы можете попробовать одно из следующего:
DateTime.Now.ToLongDateString();
DateTime.Now.ToShortDateString();
Но в BCL нет типа «Дата».