В общем, имеются в программе события, одно из них-CollectionCountChanged, которое генерируется функцией OnCollectionCountChanged:
public void OnCollectionCountChanged(object source, CollectionEventHandlerArgs args)
{
if (CollectionCountChanged != null) CollectionCountChanged(source, args);
}
Visual Studio предлагает упростить вызов делегата:
public void OnCollectionCountChanged(object source, CollectionEventHandlerArgs args)
{
CollectionCountChanged?.Invoke(source, args);
}
Кто-то может объяснить, что делает эта шляпа? Ну или конкретно, что здесь делает "?". Благодарю заранее :)
CollectionCountChanged?.Invoke(source, args);
Такая конструкция эквивалентна следующей:
if(CollectionCountChanged != null)
{
CollectionCountChanged.Invoke(source, args);
}
Бывает особенно удобно, когда через точку много сущностей перечислено, чтобы не проверять каждую из них на null
по очереди:
LevelOne?.LevelTwo?.LevelThree?...
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Формат содержимого файла: дата,фамилия сотрудника,кол-во часов роботы,проделанная работа
подскажите, может кто знает, почему когда запускаешь Game в Unity вся механика игры работает, а когда пытаешься реализовать механику в окне Scene ничего...
Я попытался запустить следующий компонент и получил ошибку, которая сбрасывает все мое программное обеспечение: