C# 这段代码中发生了什么?
我正在看Somebody的代码,我想知道是否有人能向我解释一下我在看什么C# 这段代码中发生了什么?,c#,object,methods,C#,Object,Methods,我正在看Somebody的代码,我想知道是否有人能向我解释一下我在看什么 public static KillerInspectorScene Instance { get { if (instance == null) { throw new InvalidProgramException(); } return instance;
public static KillerInspectorScene Instance
{
get
{
if (instance == null) {
throw new InvalidProgramException();
}
return instance;
}
}
我以前从未见过这样的方法,有人能告诉我我在看什么吗?我想我理解这个方法的主体。有谁能告诉我这到底是什么,这样我就可以在谷歌上进一步查找它了?我有类似的东西,下面我也不明白
public KillerInspectorScene.States GetKillerResultState(Game.KillerActions action)
{
if (action == Game.KillerActions.Disguise) {
return KillerInspectorScene.States.Disguise;
}
else if (action == Game.KillerActions.Kill) {
return KillerInspectorScene.States.Kill;
}
else if (action == Game.KillerActions.Shift) {
return KillerInspectorScene.States.Shift;
}
return KillerInspectorScene.States.Null;
}
非常感谢您的帮助。我找不到我不知道该叫什么名字的东西的名字。提前谢谢 您正在查看一个。在名为实例的静态属性上有一个公共静态getter。实例字段在其他地方初始化。如果未初始化,getter将抛出异常。实例属性在程序中是全局可访问的 第二个是方法,也是类实例的一部分。给定一个动作,它会返回某种KillerSpectorScene状态 您看到的第一种方法是验证: 如果KillerInspectorScene实例以某种方式无效,则意味着程序中的其他方法对游戏逻辑进行了无效操作,因此将抛出错误 你看的第二种方法是根据正在采取的行动作出选择,似乎杀手有3种反应选择,而这种方法正在消化这些选择。 它接收杀手的动作并根据该动作返回场景状态 我建议您检查谁在调用这些方法,以及在什么情况下确切地了解更多代码
祝你好运。像这样的方法是什么意思?很难说你不懂的代码到底是什么。它是一个静态只读属性。第二种方法是非静态方法。我不知道你说的相似是什么意思。为什么你不能问问代码的所有者?啊,是的,我真的不知道我在看什么。我认为属性应该是一个变量int、double、float等。感谢您的回复,我现在对此有了更多的理解@你的问题有点不清楚。你能用更多的细节来改进你的答案吗?或者把它限制在一个问题上?另外,您是C新手还是想更好地理解编码模式?不太可能,因为访问实例会抛出一个nullref。无论如何,它不是经典的单例模式。如果它是单例模式,该方法不是创建一个新实例而不是抛出一个异常吗?链接可以作为补充信息,但是。请包括与问题相关的链接信息摘要,并解释如何解决问题。+1。不太清楚为什么它不是一个单一模式——在我看来,它是其中的一部分。初始化实例的代码可能在其他地方,instance属性只是确保初始化完成。不明白为什么它应该得到-1。@mezoid-为什么它必须创建新实例?这段代码不需要知道实例的确切类型,所以它可能无法创建新实例。。。