Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 这段代码中发生了什么?_C#_Object_Methods - Fatal编程技术网

C# 这段代码中发生了什么?

C# 这段代码中发生了什么?,c#,object,methods,C#,Object,Methods,我正在看Somebody的代码,我想知道是否有人能向我解释一下我在看什么 public static KillerInspectorScene Instance { get { if (instance == null) { throw new InvalidProgramException(); } return instance;

我正在看Somebody的代码,我想知道是否有人能向我解释一下我在看什么

    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-为什么它必须创建新实例?这段代码不需要知道实例的确切类型,所以它可能无法创建新实例。。。