如何在C#中为数组元素使用get和set
本文关键字:get set 数组元素 | 更新日期: 2023-09-27 18:00:51
我有以下类:
public class test
{
private int i;
public test(int in)
{
i = in;
}
public int testint;
{
get { return i; }
set { i = testint; }
}
}
和以下代码:
test[] data = new test[3];
for(int j = 0; j < 3; j++)
{
data[i] = new test(0);
data[i].testint = int.Parse(Console.ReadLine());
}
Console.WriteLine(test[0].testint);
Console.WriteLine(test[1].testint);
Console.WriteLine(test[2].testint);
当我运行这个程序并输入1、2、3作为输入时,输出是0、0、0。我不明白为什么"要么得到,要么设置"似乎不起作用。如果我用0以外的值初始化数组元素,那么输出将是这样的。data[i].testint=int.Parse(Console.ReadLine(((;似乎不起作用。我该怎么做这样的事?
将设置方法更改为:
public int testint
{
get { return i; }
set { i = value; }
}
您的setter不正确。应该是:
set { i = value; }
你有:
set { i = testint; }
它只触发getter,getter来自i
,所以最后您的setter正在执行i = i
。
在setter中,value
关键字包含属性的新候选值。value
的类型等于属性的类型。我说候选值是因为你可以验证它并选择不应用它。
在您的案例中,您没有应用该值。
更新
此外,在定义getter和setter时,不应使用分号。那么,代码看起来是这样的:
public int testint
{
get { return i; }
set { i = value; }
}
我在这段代码中看到两个错误:
public int testint;
{
get { return i; }
set { i = testint; }
}
顶部的testint
后面不应该有分号。此外,set
需要使用value
进行分配,如下所示:
public int testint
{
get { return i; }
set { i = value; }
}
将您的setter更改为:
set { i = value; }
值对应于您发送来设置变量的值。
这里有一个简单的方法。
public int TestInt {get; set;}