如何为一个类数组的一个属性赋值?
我有一个类和一个数组。该数组被声明为类型:Class。如何为一个类数组的一个属性赋值?
//Class
public class TestClass
{
public int testint { get; set; }
public string teststr { get; set; }
public TestClass(int _testint, string _teststr)
{
testint = _testint;
teststr = _teststr;
}
}
//Array declaration
TestClass[] MyArray = new TestClass[ 3 ];
现在我想做的事情(这是仅用于测试 - 我心中有一个更大的代码使用这种方法我想工作的时候):
我想能够只设置teststr或仅仅是阵列单元的testint,如下所示:
MyArray[ 0 ].testint = 3;
这不会返回任何错误,但是如果我尝试打印这个;结果为空(空 - 空)。
我使用Blend 4与Silverlight - 请帮助,如果你知道如何分配单一的属性,像我想在这里!
您必须创建一个TestClass的实例,因为您刚刚创建了一个空数组,即该数组有3个引用为空。
TestClass[] MyArray = new TestClass[ 3 ];
MYARRAY是{null, null, null}
,所以MyArray[0] == null
MyArray[0] = new TestClass(42, "42");
MYARRAY是{anObject, null, null}
MyArray[0].testint = 3; // this is valid
upvote,因为我看不出为什么有一个downvote ... – 2013-04-30 13:01:05
当我尝试这个,我得到这条线上的错误CS1729: 'MyArray [0] = new TestClass();' – 2013-04-30 13:07:04
您没有en空构造函数,所以你不能无参数地调用TestClass()。您可以为您的TestClass()添加一个空的构造函数,或者为构造函数提供参数以匹配您现有构造函数的签名。 – 2013-04-30 13:09:39
我很惊讶,你没有一个空指针异常...... 尝试做' MyArray [0] = new TestClass(){testint = 3}'代替。 – Thomas 2013-04-30 12:57:25
我希望您想到的更大的代码具有大写的属性名称。 – 2013-04-30 12:59:57
@Thomas:我想这是因为这段代码参与了一些绑定机制(请参阅Blend 4 with Silverlight),所以NullPointerException应该由UI处理。 – 2013-04-30 13:02:54