Список без пустого интерфейса Interface3: Interface1, Interface2? - PullRequest
1 голос
/ 04 апреля 2020

Я строю панель пользовательского интерфейса. Вы можете добавить вещи для отображения и сохранить их в списке.

Вещи, добавленные в него, должны наследоваться от IAddable, поскольку это позволяет добавлять их в камеру (облегчает каскад игры l oop обновления, рендеринг и т. д. c). Они также должны быть IRect angular, который выставляет размер и позиции, чтобы панель могла их сортировать и позиционировать.

В настоящее время у меня есть интерфейс:

public interface IRectangularAddable : IAddable, IRectangular { }

, поэтому мой В Panel могут быть добавлены только IRectangularAddables, и в ней содержится список IRectangularAddables, который управляет обоими наборами функциональности.

Кажется, что запах кода имеет интерфейс, который просто наследует от двух других без добавления членов, это против CA1040 ?

Это правильный способ сделать это?

1 Ответ

1 голос
/ 04 апреля 2020

Краткий ответ

Создание интерфейсов, как указано выше, не против CA1040 , поскольку вы реализуете 2 или более интерфейсов.

Длинный ответ

Кроме того, когда вы действительно читаете правило, первый раздел «Причина» гласит:

Причина: Интерфейс не объявляет никаких членов и не реализует два или более других интерфейса.

Это означает, что создание интерфейса, который не объявляет членов и реализует только один другой интерфейс, будет нарушать CA1040 при реализации двух интерфейсов этого не произойдет.

Кроме того, когда вы разрешаете проверять код, это правило не должно срабатывать в вашем случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...