2015-04-06 3 views
0

Просто интересно, как назвать это для моей цели обучения. Я знаю, чтобы назвать это с помощью создания объекта, когда я не использую IIm или IIn.Display (например, используя public void Display();) Однако я не знаю, как это назвать.Как назвать эти методы интерфейса?

public interface IIn 
{ 
    void Display(); 
} 
public interface IIM : IIn 
{ 
    void Display(); 
} 
public class temp : IIM 
{ 
    void IIM.Display() 
    { 
     Console.WriteLine("Displaying 1"); 
    } 

    void IIn.Display() 
    { 
     Console.WriteLine("Displaying 2 "); 
    } 

    static void Main() 
    { 
     temp t = new temp(); 

     Console.ReadLine(); 
    } 
+0

Это вопрос с конкретной версией C#? Если нет, тега 'C#' будет достаточно. –

+0

Этот код не будет компилироваться (вам нужно использовать «новое» слово при объявлении интерфейса Display() метода интерфейса IIM, так как оно скрывает значение, введенное 'IIn'). –

+1

@MatthewWatson. Вы хотите предоставить код, который показывает, что он не будет компилироваться? – dotnetom

ответ

6

Учитывая

var t = new temp(); 

Вы только должны бросить t одному из интерфейсов ... копируете его в переменной типа интерфейса достаточно:

IIM t1 = t; 
IIn t2 = t; 
t1.Display(); // Displaying 1 
t2.Display(); // Displaying 2 

или прохождение в качестве параметра к методу:

static void MyShow(IIM t1, IIn t2) 
{ 
    t1.Display(); // Displaying 1 
    t2.Display(); // Displaying 2 
} 

MyShow(t, t); 

или вы можете напрямую бросить его и использовать метод:

((IIM)t).Display(); // Displaying 1 
((IIn)t).Display(); // Displaying 2 

к сведению, что если у вас есть третий метод в классе

public void Display() 
{ 
    Console.WriteLine("Displaying 3 "); 
} 

это назвали бы его

t.Display(); // Displaying 3 
+0

Спасибо, что вам понравилось. Особенно мне понравился ваш третий подход, который я искал. Также объяснение метода класса. – Learner

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