我遇到此错误:
'LnkScript.LnkScript.KillstreakHud.KillstreakHud(InfinityScript.Entity)':静态构造函数必须是无参数的C:\ Users \ home \ Desktop \ LnkScripts.cs 61 20 LnkScript
我的源代码:
public class KillstreakHud : BaseScript
{
static KillstreakHud(Entity player)
{
string killstreak = "^3Killstreak:^3" + player.GetField<int>("killstreak").ToString();
HudElem hudelem = HudElem.CreateFontString(player, "hudsmall", 1f);
HudElem.SetPoint("TOPCENTER", "TOPCENTER");
HudElem.SetText(killstreak);
base.OnInterval(300, delegate
{
killstreak = "^3Killstreak:^3" + player.GetField<int>("killstreak").ToString();
hudelem.SetText(Killstreak);
return true;
});
}
}
Run Code Online (Sandbox Code Playgroud)
显然,我的静态构造函数不是无参数的,因此编译器对此不屑一顾。但为什么?
静态构造函数必须是无参数的,因为没有任何东西可以调用它,当您访问静态成员或创建类的实例时,它会被调用,但不能直接调用(由运行时调用)。
解决方案:删除您的参数,或使其变为非静态
静态构造函数参考:http : //msdn.microsoft.com/zh-cn/library/k9x6w0hc.aspx
要使其变为非静态(请注意,现在将需要使用new关键字直接调用它):
public KillstreakHud(Entity player)
{
...
}
Run Code Online (Sandbox Code Playgroud)