Несогласованная ошибка доступности со следующим кодом c #. Зачем?

Что не так со следующим кодом c #? Компилятор сообщает об этой ошибке:

Непоследовательная доступность: тип параметра ‘ClassLibrary1.Interface1’ менее доступен, чем метод ‘ClassLibrary1.Class1.Class1 (ClassLibrary1.Interface1)’

со следующим кодом:

interface Interface1 { bool IsDataValid(); /* Other interfaces */ } public class Class1 { public Interface1 interface1; public Class1(Interface1 interface1) { this.interface1 = interface1; } } 

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

ваш «интерфейс1» не является публичным.

 public interface Interface1 { bool IsDataValid(); /* Other interfaces */ } 

Отметьте свой интерфейс как общеansible:

public interface Interface1

Если вы не укажете метку доступности, по умолчанию она будет internal , то есть доступна только для других classов в сборке.

второе решение. Если ваш интерфейс не является общедоступным, не делайте свой class общедоступным, если вы создаете дескриптор интерфейса.

  • Потоковое безопасное ленивое построение одноэлементного кода в C ++
  • Изменение размера массива с помощью C
  • когда & зачем использовать делегатов?
  • Как я могу получить доступ к теневой глобальной переменной в C?
  • Статическое ключевое слово и его различные применения в C ++
  • WPF: привязка ContextMenu к команде MVVM
  • Настройка цвета фона или WPF (4.0) ListBox - Windows 8
  • Когда статические определения функций в файлах заголовков в C?
  • Методы расширения должны быть определены в неэквивалентном статическом classе
  • Изменение адреса, содержащегося в указателе с использованием функции
  • Выравнивание ЦП и данных
  • Давайте будем гением компьютера.