троичная операторная имбиграция - PullRequest
3 голосов
/ 22 ноября 2010

Мне интересно: какова лучшая инструкция по производительности между этими двумя версиями:

Background = Application.Current.Resources[condition ? BackgroundName1 : BackgroundName2] as Brush;

и:

Background = condition ? Application.Current.Resources[BackgroundName1] as Brush : Application.Current.Resources[BackgroundName2] as Brush;

Есть ли разница?и если да, то какой из них лучше?

спасибо

Примечание: BackgroundName1 & 2 - просто строки

Ответы [ 4 ]

5 голосов
/ 22 ноября 2010

Первый короче и удобнее для чтения.

Его также легче поддерживать.
Если вы позже измените его на другой словарь ресурсов, вы можете забыть изменить вторую половину второй.

Первый также более четко читается из того же словаря.

3 голосов
/ 22 ноября 2010

Первый: используйте профилировщик, чтобы найти самую медленную вещь. Если у вас проблемы с производительностью, не имеет смысла тратить часы или дни на то, чтобы сделать что-то более быстрое и уже достаточно быстрое.

Второе: вы можете определить ответ на свой вопрос, попробовав его в обоих направлениях и тщательно измеряя, чтобы увидеть, есть ли разница. Не спрашивайте нас, что быстрее; мы не знаем, потому что мы не пробовали и не имеем возможности это попробовать.

2 голосов
/ 22 ноября 2010

Не слишком увлекайтесь микрооптимизацией!Прирост производительности, который вы получите, будет равен нулю.Пойдите для кода, который является более читабельным и более легким для понимания в конце.

0 голосов
/ 22 ноября 2010

Без разницы.

...