要求接口实现具有静态Parse方法

yoo*_*er8 5 c# static interface

我有一个最小的接口,并将处理其类实现此接口的对象的集合.该集合(及其相关功能)不关心这些对象的名称之外的任何细节,将它们转换为XML的能力以及从XML解析它们的能力.

接口的未来实现将使用集合的元素做更多的事情,并且显然将实现它们自己的Parse和ToXml方法(集合将使用它们在遇到时适当地解析这些项​​).

不幸的是,我无法在界面中列出静态Parse方法(我已经阅读了 三个 问题).让Parse方法需要一个实例对我来说没有意义.有没有办法要求接口的所有实现都有静态Parse方法?

public interface IFoo
{
  string Name { get; }

  string ToXml();

  static IFoo Parse(string xml); // Not allowed - any alternatives?
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*rth 5

你不能这样做.而静态方法无论如何都不是多态的,所以它没有多大意义.

你想要的是某种工厂模式.