Чтобы код выражал твое intention, а не мозги пудрил. Чтобы, глядя на код, который обращается к переменной, ты видел, статическая это переменная или член класса.
есть разные подходы к restrictiveness языка. когда restriction обусловлен тем, что "иначе будет много ошибок вот здесь" - я согласен. данный restriction таковым не является. просто "а вот не дадим" - потому что так левая пятка захотела. в логику языка это никак не вписывается.
Как раз-таки в логику это вполне вписывается. Если при вызове метода туда передается инстанс, то и вызывать его через инстанс - это нормально. А если метод статический - значит, и инстанс не нужен.
Впрочем, споры о том, что вписывается или не вписывается в логику языка - дело в любом случае довольно бестолковое.
и это правильно! статический мембер не принадлежит инстансу на самом деле, так что для него заход через инстанс - левизна, совершенно неочевидная для всех остальных.
то, что ты выразил фразой "не принадлежит на самом деле" - это как раз детали реализации, которые меня как пользователя, а не разработчика языка, не волнуют.
а синтаксис (ClassName.MethodName) мне говорит - "принадлежит", и безо всяких "на самом деле".
no subject
Re:
no subject
Впрочем, споры о том, что вписывается или не вписывается в логику языка - дело в любом случае довольно бестолковое.
no subject
;)
Re:
no subject
no subject
а синтаксис (ClassName.MethodName) мне говорит - "принадлежит", и безо всяких "на самом деле".