metaclass: (Default)
[personal profile] metaclass
кусочек кода примера с их сайта:

if(message.GetType() == typeof(SoapServerMessage))


Никто не знает, почему они не написали так:

if(message is SoapServerMessage)

Date: 2007-11-16 08:45 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Проблема потенциальная - такой код может сломаться, если кто-нибудь унаследуется от SoapServerMessage и впихнет экземпляр наследника при посылке. Мне такая практика кажется вполне легитимной. Второй вариант так же читабельнее.
И вообще, если автор кода хочет знать, что это именно тот класс что он хочет, а не его наследник - у автора очевидные змеи в голове, ибо это нарушение ООП, согласно канонам которого, наследники должно быть можно подсовывать всюду, где нужны базовые классы.

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Oct. 9th, 2025 03:38 pm
Powered by Dreamwidth Studios