2016-02-25 1 views
0

У меня есть один интерфейс. Внутри интерфейса у меня есть 3 метода.Как вызвать интерфейс конкретного метода в C#?

public interface interfaceMethod 
{ 
    string methodA(); 
    string methodB(); 
    string methodC(); 
} 

Я хотел бы назвать только один метод для методаA() без ссылки все интерфейс способ. Как вызвать только один метод вместо того, чтобы ссылаться на весь метод.

Public class Class1 
{ 
    public string testCallInterfaceMethod() 
    { 
     interfaceMethod obj = new interfaceMethod(); 
     obj.callMethodA(); 
    } 
} 
+2

Вы не можете создать экземпляр интерфейса, это ваш код компилируется получать? – Adil

+0

Как сказал Адиль: вы не можете создать интерфейс. Но вы можете создать класс, который будет реализовывать только MethodA и выдавать исключения для метода и метода. – Jurion

+0

Я получаю ниже ошибки. – dhamo

ответ

4

Зачем создавать интерфейс/контракт, а затем не придерживаться его? Звучит как идеальный вариант использования для двух интерфейсов.

public interface interfaceMethod 
{ 
    string methodA(); 
} 

public interface anotherInterface : interfaceMethod 
{ 
    string methodB(); 
    string methodC(); 
} 
0

Интерфейс - это всего лишь договор. Класс может подписать этот контракт, а затем реализовать методы, к которым это требует контракт. С помощью своего интерфейса, следующий код будет работать:

public interface InterfaceMethod 
{ 
    string methodA(); 
    string methodB(); 
    string methodC(); 
} 

Public class Class1 : InterfaceMethod 
{ 
    //Implementation of InterfaceMethod interface 
    public string MethodA() { /* Code */ } 

    public string MethodB() { /* Code */ } 

    public string MethodC() { /* Code */ } 

    /* Class' other code */ 
} 

Где-то еще ...

public string testCallInterfaceMethod() 
{ 
    InterfaceMethod im = new Class1(); 
    Console.WriteLine(im.MethodA()); 
    Console.WriteLine(im.MethodB()); 
    Console.WriteLine(im.MethodC()); 
    return null; 
}