Лучший способ проверки на null

Программирование на Юнити.

Лучший способ проверки на null

Сообщение Makkarob 20 сен 2017, 11:40

Подскажите, пожалуйста, какой способ лучше с точки зрения оптимизации:

Синтаксис:
Используется csharp
public GameObject SomeGameObject;
if (!SomeGameObject) {
}
 

Синтаксис:
Используется csharp
public GameObject SomeGameObject;
if (SomeGameObject == null) {
}
 

Или, возможно, есть способ еще лучше?
Аватара пользователя
Makkarob
UNIт
 
Сообщения: 90
Зарегистрирован: 18 июл 2015, 14:22
Откуда: Украина, Харьков
Skype: Makkarob
  • Сайт

Re: Лучший способ проверки на null

Сообщение Andrey328 20 сен 2017, 11:52

Написал скрипт, который 1 миллион раз выполняет первый тип сравнения, и столько же раз - 2-й. Результаты можете видеть сами
Изображение
Andrey328
UNец
 
Сообщения: 3
Зарегистрирован: 19 сен 2017, 17:00

Re: Лучший способ проверки на null

Сообщение lawsonilka 20 сен 2017, 19:22

проверка if (object) происходит преобразование в bool через Implicit оператор с помощью Equals, а сравнение на прямую происходит через оператор == который также вызывает Equals.
В любом случае вам это ну ни как не навредит.
lawsonilka
UNIверсал
 
Сообщения: 390
Зарегистрирован: 21 окт 2014, 14:48

Re: Лучший способ проверки на null

Сообщение snezhok_13 20 сен 2017, 19:35

Кое какая магия происходит в перегруженном операторе (popcorn)
Разработка игр, немножко игровая журналистика, сейчас делаем Календарь: даты выхода игр
Аватара пользователя
snezhok_13
UNIверсал
 
Сообщения: 450
Зарегистрирован: 09 сен 2013, 11:12
Skype: s.coremission
  • Сайт

Re: Лучший способ проверки на null

Сообщение Makkarob 20 сен 2017, 21:04

snezhok_13 писал(а):Кое какая магия происходит в перегруженном операторе (popcorn)

Надо же, какая дичь происходит. Но неужели все так и осталось, ведь новость от "Май 16, 2014". Прошло 3 года. И что, до сих пор лучший способ проверки это:
Синтаксис:
Используется csharp
if(!gameObject){
// если объект null
}
if(gameObject){
// если объект не null
}
 
Аватара пользователя
Makkarob
UNIт
 
Сообщения: 90
Зарегистрирован: 18 июл 2015, 14:22
Откуда: Украина, Харьков
Skype: Makkarob
  • Сайт

Re: Лучший способ проверки на null

Сообщение Dewa1s 21 сен 2017, 05:13

Makkarob писал(а):
snezhok_13 писал(а):Кое какая магия происходит в перегруженном операторе (popcorn)

Надо же, какая дичь происходит. Но неужели все так и осталось, ведь новость от "Май 16, 2014". Прошло 3 года. И что, до сих пор лучший способ проверки это:
Синтаксис:
Используется csharp
if(!gameObject){
// если объект null
}
if(gameObject){
// если объект не null
}
 

ужас ужас, как дальше жить? #-o Это же самое узкое и важное место в игре, которое требует срочной оптимизации!
Аватара пользователя
Dewa1s
Старожил
 
Сообщения: 564
Зарегистрирован: 26 дек 2011, 02:12


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 7