2013-12-09 2 views
-1

У меня есть приложение, в котором используется интерфейс.Вызов метода интерфейса с использованием статической переменной в C#

public interface INotificationError 
{ 
    void Notification(Erros.ETypes error, Exception e); 
} 

В каком-то другом классе говорит ClassName, они назначили статическую переменные как следующее:

public static INotificationError ErrorDispatch; 

Они используются для вызова определенного метода, используя следующую строку.

ClassName.ErrorDispatch.Notification(ERROR, ex); 

Как можно назвать этот метод? Пожалуйста, объясни?

+2

'ClassName.ErrorDispatch.Notification (ОШИБКА, ех);' –

+0

сожалению. .Its моя typo –

+1

_ «Как это можно назвать этим методом? Пожалуйста, объясните?» _ - пожалуйста, объясните, какие ответы вы ищете. Почему это было бы невозможным вызвать метод? – CodeCaster

ответ

1

ClassName.ErrorDispatch относится к статическому члену ErroDispatch внутри класса ClassName, где ErroDispatch будет инициализирован, как это:

ErroDispatch = new DerivedFromINotificationErrorClass(); 

Таким образом, вы можете позвонить членам этого класса. доступ к этому члену статичен, но этот член обычно экземпляр некоторого класса, который реализует интерфейс INotificationError (в моем примере это DerivedFromINotificationErrorClass)

+0

Да, вы правы. Я мог найти часть инициализации в основном классе, как вы упомянули. –

0

ClassName был, вероятно, собственностью с именем, соответствующим вашему классу.

0

Проверьте ссылки на ClassName ErrorDispatch, где-то будет назначаться класс реализации, который реализует интерфейс INotificationError, в противном случае это приведет к исключению ссылочной ссылки.

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