c#类的默认方法

本文关键字:方法 默认 | 更新日期: 2023-09-27 18:12:21

是否有一种方法可以像这样为一个类分配一个默认方法:

public class EscMenu
{
    public static void EscMenu()
    {
        //do something
    }
   public static void SomeOtherMethod()
   {
       //do something else
   }
}

所以当我在同一个解决方案中调用另一个类中的EscMenu.SomeOtherMethod();时,它确实"做其他事情",但我不能调用EscMenu();

我该怎么做呢?

谢谢!

编辑:

好吧,我会试着用更好的方式来解释:

我只是想要类EscMenu做一些事情,当我从另一个(外部)类调用它:EscMenu();。当然,我可以很容易地在EscMenu中创建一个方法default(),并在外部调用EscMenu.default();。但是我真的想调用EscMenu();

如果这是不可能的,或者我仍然无法解释自己,那么就不要介意;-)

再次感谢!

c#类的默认方法

不行,你不能给一个方法取和它的包含类型相同的名字——而且你真的不想把类型的名字和方法的名字搞混。为什么要引入歧义?

如果你能给出一些例子,你想用其他方式编写代码,而不是已经可用的,我们可能能够帮助你更多。(例如,它可能是扩展方法可以帮助)

"默认"方法的概念在c#中是一种荒谬的,但是从我可以从您的需求中收集到的,您不希望能够在外部(即在类之外)调用EscMenu,因此使用private访问修饰符:

private static void EscMenu(){
    //do something
}

但是你需要一个不同的成员名

我不知道你说的默认方法是什么意思。但是为了防止其他类调用ExcMenu类中的方法,可以将方法设为private:

public class EscMenu
{
    private static void EscMenu()
    {
       //do something
    }
    public static void SomeOtherMethod()
    {
        //do something else
    }
}

这里(如果您清理了语法)是一个静态构造函数。

    静态构造函数不接受访问修饰符,也没有参数。
  • 在创建第一个实例或引用任何静态成员之前,自动调用静态构造函数来初始化类。
  • 静态构造函数不能直接调用
  • 用户无法控制静态构造函数何时在程序中执行。