C# 在c中使用静态变量调用接口方法#

C# 在c中使用静态变量调用接口方法#,c#,interface,C#,Interface,我有一个使用接口的应用程序 public interface INotificationError { void Notification(Erros.ETypes error, Exception e); } 在另一个类中,例如ClassName,它们分配了一个静态变量,如下所示: public static INotificationError ErrorDispatch; 他们使用以下行调用定义的方法 ClassName.ErrorDispatch.Notification(E

我有一个使用接口的应用程序

public interface INotificationError
{
    void Notification(Erros.ETypes error, Exception e);
}
在另一个类中,例如
ClassName
,它们分配了一个静态变量,如下所示:

public static INotificationError ErrorDispatch;
他们使用以下行调用定义的方法

ClassName.ErrorDispatch.Notification(ERROR, ex);

为什么可以调用这个方法?请解释?

ClassName
可能是一个名称与您的类名匹配的属性。

检查ClassName ErrorDispatch上的引用,在某个地方将分配给实现INotificationError接口的实现类,否则将导致空引用异常。

ClassName.ErrorDispatch
指类内的静态成员
ErrorDispatch
,其中
ErrorDispatch
初始化如下:

ErroDispatch  = new DerivedFromINotificationErrorClass();

所以你可以打电话给那个班的成员。对该成员的访问是静态的,但该成员通常是实现
INotificationError
接口的某个类的实例(在我的示例中,这是
DerivedFromINotificationErrorClass

ClassName.ErrorDispatch.Notification(ERROR,ex)“为什么可以调用此方法?请解释?”-请解释您正在寻找的答案。为什么不可能调用这个方法呢?是的,你是对的。我可以像你提到的那样在主类中找到初始化部分。