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#中是一种荒谬的,但是从我可以从您的需求中收集到的,您不希望能够在外部(即在类之外)调用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
}
}
这里(如果您清理了语法)是一个静态构造函数。
静态构造函数不接受访问修饰符,也没有参数。
- 在创建第一个实例或引用任何静态成员之前,自动调用静态构造函数来初始化类。
- 静态构造函数不能直接调用
- 用户无法控制静态构造函数何时在程序中执行。