这段代码发生了什么?

时间:2014-05-01 03:06:27

标签: c# object methods

我正在查看某些人的代码,我想知道是否有人可以向我解释我在这里看到的内容。

    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;
    }

非常感谢帮助。我不能查找我不知道名字的名字。提前谢谢!

3 个答案:

答案 0 :(得分:0)

您在名为Instance的静态属性上有一个公共静态getter。实例字段在其他地方初始化。如果未初始化,则getter会抛出异常。 Instance属性可在您的程序中全局访问。

第二个是方法,是你班级实例的一部分。给定一个动作它会返回某种KillerInspectorScene状态。

答案 1 :(得分:0)

  1. 您要看的第一种方法是验证:
    如果KillerInspectorScene实例以某种方式无效,则意味着程序中的其他方法对游戏逻辑进行了无效操作,因此会引发错误。

  2. 您所看到的第二种方法是根据正在进行的操作进行选择,似乎有3个选项可供杀手做出反应,而且该方法是“消化”"那些选择。

    它接收杀手的动作并根据该动作返回场景状态。

  3. 我建议您检查谁在调用这些方法,以及在哪些情况下确切地了解您的代码。

    祝你好运。

答案 2 :(得分:-2)

您正在查看singleton pattern