有没有办法为这样的类分配默认方法:
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();
如果那是不可能的,或者我在解释自己时继续失败,那就不要介意; - )
再次感谢!
答案 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。
- 静态构造函数不接受访问修饰符或具有参数。
- 在创建第一个实例或引用任何静态成员之前,会自动调用静态构造函数来初始化类。
- 无法直接调用静态构造函数。
- 用户无法控制程序中何时执行静态构造函数。