109: (Default)
109 ([personal profile] 109) wrote2003-01-20 01:07 am

C#

static member cannot be accessed with an instance reference.

а вот это - ботва, товарищи. почему???

[identity profile] yole.livejournal.com 2003-01-19 10:50 pm (UTC)(link)
Чтобы код выражал твое intention, а не мозги пудрил. Чтобы, глядя на код, который обращается к переменной, ты видел, статическая это переменная или член класса.

Re:

[identity profile] 109.livejournal.com 2003-01-20 12:21 am (UTC)(link)
есть разные подходы к restrictiveness языка. когда restriction обусловлен тем, что "иначе будет много ошибок вот здесь" - я согласен. данный restriction таковым не является. просто "а вот не дадим" - потому что так левая пятка захотела. в логику языка это никак не вписывается.

[identity profile] yole.livejournal.com 2003-01-20 12:55 am (UTC)(link)
Как раз-таки в логику это вполне вписывается. Если при вызове метода туда передается инстанс, то и вызывать его через инстанс - это нормально. А если метод статический - значит, и инстанс не нужен.

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

[identity profile] duginov.livejournal.com 2003-01-19 11:34 pm (UTC)(link)
define "ботва" применительно к данной ситуации?
;)

Re:

[identity profile] 109.livejournal.com 2003-01-20 12:21 am (UTC)(link)
бессмысленное (и беспощадное :-) ограничение.

[identity profile] elk.livejournal.com 2003-01-20 06:09 am (UTC)(link)
и это правильно! статический мембер не принадлежит инстансу на самом деле, так что для него заход через инстанс - левизна, совершенно неочевидная для всех остальных.

[identity profile] 109.livejournal.com 2003-01-20 10:29 am (UTC)(link)
то, что ты выразил фразой "не принадлежит на самом деле" - это как раз детали реализации, которые меня как пользователя, а не разработчика языка, не волнуют.

а синтаксис (ClassName.MethodName) мне говорит - "принадлежит", и безо всяких "на самом деле".