C#类默认方法

时间:2011-10-26 13:58:35

标签: c# class function methods default

有没有办法为这样的类分配默认方法:

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

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

因此,当我在同一解决方案中的另一个类中调用EscMenu.SomeOtherMethod();时,它会“执行其他操作”,但我无法调用EscMenu();

我该怎么做?

谢谢!

编辑:

好的,我会尝试以更好的方式解释这个问题:

当我从另一个(外部)类中调用它时,我只希望类EscMenu能够执行某些操作:EscMenu();。当然,我可以在default()中轻松创建方法EscMenu,并在外部调用EscMenu.default();。但我真的想打电话给EscMenu();

如果那是不可能的,或者我在解释自己时继续失败,那就不要介意; - )

再次感谢!

4 个答案:

答案 0 :(得分:6)

不,你不能给出与其包含类型相同名称的方法 - 并且你真的不想将类型的名称与方法的名称混淆。为什么要引入歧义?

如果您可以提供一些示例,您希望以某种方式编写代码而不是已有的代码,我们可以为您提供更多帮助。 (例如,可能是扩展方法可以帮助。)

答案 1 :(得分:0)

“默认”方法的概念在C#中是一种荒谬,但是从我可以从你的要求中收集到的,你不希望能够在外部调用EscMenu(即在外部调用private class),所以为此使用private static void EscMenu(){ //do something } 访问修饰符:

{{1}}

但是你需要一个与会员不同的名字。

答案 2 :(得分:0)

我不知道你的默认方法是什么意思。但是为了防止其他类在您的类Exc菜单中调用方法,您可以将方法设为私有:

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

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

答案 3 :(得分:0)

你所拥有的(如果你清理了语法)是static constructor

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