Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.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中的引用#_C# - Fatal编程技术网

C# C中的引用#

C# C中的引用#,c#,C#,我正在尝试为一个游戏实现一个简单的计数器。我希望能够使用一个以字符串和int作为参数的方法来增加fire、water和earth属性 然而,我不确定以下措施是否有效。我不确定elements数组中的int是否指向同名的原始属性,或者它是否只是在数组中复制它 class TypeCounter{ int fire = 0; int water = 0; int earth = 0; string[] elementNames = { "fire", "water

我正在尝试为一个游戏实现一个简单的计数器。我希望能够使用一个以字符串和int作为参数的方法来增加fire、water和earth属性

然而,我不确定以下措施是否有效。我不确定elements数组中的int是否指向同名的原始属性,或者它是否只是在数组中复制它

class TypeCounter{
    int fire = 0;
    int water  = 0;
    int earth  = 0;
    string[] elementNames = { "fire", "water", "earth"};
    int[] elements = {fire, water, earth};

    public void AddTo(string element, int val){
        int keyIndex = Array.FindIndex(elementNames , element);
        elements[keyIndex] += val;
    }
}
我希望能够做到以下几点:

TypeCounter counter = new TypeCounter();

public Run(){
    print counter.fire;
    counter.AddTo("fire", 1);
    print counter.fire;
}

当我执行Run()方法时,我希望第一个print语句的输出为
0
,第二个语句的输出为
1

您的方法将增加
元素
数组中的项,而不是
地球
字段。

考虑为此使用字典。另请参阅:“C#中的指针,何时使用?”-这与指针无关。只需执行并查看发生了什么。
“但我不确定以下操作是否有效。”
-测试时会发生什么?
“我希望输出为0“
-测试时会发生什么?堆栈溢出是编译器的一个很差的替代品。