artbear писал(а) 16. Марта 2008 :: 11:50:kms писал(а) 16. Марта 2008 :: 11:43:Ну, не знаю, как вам понравится идея привязать проверку таких конфликтов даже не к проверке типов, а сделать новый отдельный режим проверки.
И для свойств, и для методов.
Для свойств понятно, что нужно.
А для методов вопрос - как ты отличишь подобную ошибку переопределения метода и виртуальный метод ?
С методами чуть по-другому.
Нам бы для методов надо анализировать уровень контекста, в котором идет поиск.
При разрешении имени мы ищем имя не до первого контекста, в котором мы его находим, а все контексты одного уровня.
Если мы находим 1 вариант - используем его, если ни одного - ищем на уровне выше.
Если находим неоднозначность - выдаем сообщение (и используем первый из найденных, как сейчас и происходит).
В принципе, тоже можно сделать при (можно только первом) создании класса, а не при вызове.
Но, Артур, я бы диагностику свойств и методов разделил бы как задачи.
Мне кажется, для свойств сделать легче, а пользы больше, потому что проблемы конфликтов свойств вручную искать тяжелее.