2013-04-19 2 views
3

Я новичок в .net C#. Я изучаю интерфейсы.Модификаторы доступа с интерфейсами

  1. Можем ли мы использовать модификаторы доступа с интерфейсами, если да, то они действительны?
  2. По умолчанию внутренние интерфейсы?
  3. Можем ли мы использовать модификаторы доступа на интерфейсных элементах, если да, то они действительны?
+2

Почему бы не попробовать? –

ответ

15

Вы должны увидеть:

Access Modifier - MSDN

Интерфейсы объявлены непосредственно в пространстве имен могут быть объявлены публично или внутренний и, так же как классы и структур, интерфейсов по умолчанию для внутреннего доступа. Элементы интерфейса всегда являются общедоступными , потому что целью интерфейса является включение других типов для доступа к классу или структуре . Модификаторы доступа не могут применяться к интерфейсу .

(Для ваших вопросов)

Можно ли использовать модификатор доступа с интерфейсом

Да, они могут быть объявлены публично или внутренний

По умолчанию Внутренний внутренний:

Да.

Что касается доступа к модемам с элементами Inteface.

Публикации. Модификаторы доступа не могут применяться к членам интерфейса.

+0

Большое спасибо Habib ... –

+0

@SaurabhMahajan, добро пожаловать – Habib

+0

Привет Хабиб, мне нужна ваша помощь. Как вы мне сказали, «члены Intefaces всегда публичны». Я объявил одну функцию-член публичной, она дает ошибку компиляции, и если я удалил общедоступное ключевое слово, тогда он отлично работает. –

0

1. вы МОЖЕТЕ использовать модификатор доступа с интерфейсом. вы можете использовать любой модификатор доступа даже частное на интерфейсах, как вы можете сделать в классе

2.yes, интерфейсы по умолчанию являются внутренним

члена 3.Interface должен быть публичным

хорошо, вы можете» t определить частный интерфейс непосредственно в пространстве имен, так как вы не можете определить частный класс в пространстве имен, потому что частный interace/class не может использоваться кем-либо.Но вы можете объявить частный интерфейс/класс внутри другого класса

Я имею в виду, вы не можете сделать это:

namespace myNamespace{ 
    private interface MyInterface{...} 
} 

это потому, что MyInterface не будет утилизируемой любым другим классом/интерфейсом

но вы может сделать

namespace myNamespace{ 
    class MyClass{ 
     private interface MyInterface{...} 
    } 
} 

в этом случае MyInterface могут быть использованы только MyClass

+0

привет iam, у меня есть небольшие дотла, которые в прямом пространстве имен я создал частный интерфейс, он дает компиляцию. –

+0

ну, вы не можете определить частный интерфейс непосредственно в пространстве имен, поскольку вы не можете определить частный класс в пространстве имен, потому что частный interace/class не может использоваться кем-либо. Но вы можете объявить частный интерфейс/класс внутри другого класса –

Смежные вопросы