将值添加到作为另一个对象的引用的数组元素

时间:2015-11-06 14:51:14

标签: c# arrays pointers reference

对不起,这个问题可能以不同的形式存在,但我真的到处搜寻,看不到它。

我曾在C ++工作,习惯了指针。我用C#模拟代码替换我的逻辑时遇到问题。

这是我的C#代码

read.table(..., stringsAsFactors=FALSE)

我希望数组成为将来直接添加到对象字段的实例的持有者。

1 个答案:

答案 0 :(得分:0)

您永远不会为P1.A分配值,因此它仍为空。 实际上,您为数组[1]分配了两次值:第一次分配P1.A,第二次分配给X.没有任何关系bewtwen两个引用的值。

你可以认为C#引用(例如数组[1]或对象obj = new Object())类似于c ++指针。

在您的示例中,替换。使用 - >,并尝试思考它在c ++中的工作方式:它在c#中的工作方式相同

[编辑]

在c ++中你会写:

Son* P1 = new Son();
Parent* X = new Parent();

Parent* array[10]; // an array of 10 pointers
//TODO: zeromemory all elements of array, c++ does't iniziatialize pointers
array[1] = P1->A;
array[1] = X;
在c#中,您可以像这样编写上面的代码:

Son P1 = new Son();
Parent X = new Parent();

Parent array[10]; // an array of 10 reference to Parent, c# initialize all references to null
array[1] = P1.A;
array[1] = X;