C#强制所有类的方法都有一个给定名称的方法

she*_*har 1 c#

我不确定这是否有意义,因此广泛地问它.是否可以强制执行一组类始终实现具有给定名称的函数.每个类中的方法可能具有不同的签名 - 但应具有相同的名称.有些如下:

public class ClassOne {
    public int GetSomething (int a, int b, out int c) { }
}

public class ClassTwo {
    public int GetSomething ( int a, out string b) {}
}
Run Code Online (Sandbox Code Playgroud)

我希望任何编写ClassThreeClassFour作为此库的一部分的人实现该GetSomething方法.是否有一个C#构造允许一个人强制执行此操作?

不看这个设计评论 - 只是想知道它是否可能没有手动执行代码审查.

Pat*_*man 6

你不能用开箱即用的C#做到这一点.C#具有抽象类和接口,但它们需要特定的方法签名,而不仅仅是名称.

您可以通过在Roslyn中创建代码分析器来实现此功能,如果代码具有所需的方法,则可以在其中检查代码.

但是,我不认为你应该这一切.我认为你在设计缺陷时需要一个具有特定名称的方法,而不强迫它的参数.

您始终可以实现类似于Main每个C#应用程序中找到的方法的方法.它使用string[]as参数,你可以在其中放入一些变量.在你的情况下,我会选择一个object[].但是,这种设计有其明显的缺陷.