1

我有一个我制作的 Character 对象列表和一个可以包含一个字符的 Cells 列表。是否可以将我的角色对象添加到列表中并分配给一个单元格,并在派对列表或单元格中对其进行更改以在两个地方影响对象?我真的不知道指针将如何解决这个问题。我想将会发生的事情是列表中的对象是与分配给单元格的对象不同的对象。

抱歉,我的代码非常大,所以我不想在这里全部发布,但我正在谈论的 Character 是我制作的自定义类。我想我的问题实际上可以归结为两个问题。当我将某些东西放入列表时,就是改变指针指向的位置,或者是一个新对象。如果我将某些内容添加到列表然后将其分配给角色对象的另一个实例,我也可以有多个指针,这将引用来自单元对象的角色与从另一个列表对象引用我的角色相同。

4

2 回答 2

2

只要您Character是一个类(即引用类型),那么您实际上就是在存储对Character对象的引用。当通过任何其他引用访问对象时,您通过对对象的引用对对象所做的任何更改都将是可见的。

例子:

class Character
{
    public string Name { get; set; }
}

var c = new Character();
var c2 = c;
var arr1 = new Character[] { c };
var arr2 = new Character[] { c };

arr1[0].Name = "Foo";
Console.WriteLine(arr2[0].Name); // "Foo"
Console.WriteLine(c2.Name); // also "Foo"
于 2013-04-06T18:36:18.873 回答
1

所以基本上你想把 Characters 当作一个引用类型。

只需创建您自己的包装对象,其中包含一个字符。

public MyCharacter
{
public char character{get;set;}
}

对象是通过引用来处理的,所以这应该对你有用。

于 2013-04-06T18:36:11.853 回答