Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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#中使用数组元素的get和set?_C#_Arrays_Properties_Get_Set - Fatal编程技术网

如何在C#中使用数组元素的get和set?

如何在C#中使用数组元素的get和set?,c#,arrays,properties,get,set,C#,Arrays,Properties,Get,Set,我有以下课程: 公共类测试 { 私人互联网i; 公共测试(int-in) { i=英寸; } 公共智力测验; { 获取{return i;} 集合{i=testint;} } } 以及以下代码: test[]数据=新测试[3]; 对于(int j=0;j

我有以下课程:

公共类测试
{
私人互联网i;
公共测试(int-in)
{
i=英寸;
}
公共智力测验;
{
获取{return i;}
集合{i=testint;}
}
}
以及以下代码:

test[]数据=新测试[3];
对于(int j=0;j<3;j++)
{
数据[i]=新试验(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。我不明白为什么get或set似乎不起作用。如果我用一个非0的值初始化数组元素,则输出将是该值。数据[i].testint=int.Parse(Console.ReadLine());似乎不起作用。我该怎么做那样的事呢?

你的塞特不正确。应该是:

 set { i = value; }
你有:

 set { i = testint; }
这只会触发getter,getter来自
i
,因此最终setter执行的是
i=i

在setter中,
value
关键字包含属性的新候选值<代码>值的类型等于属性的类型。我之所以说候选值,是因为您可以验证它并选择不应用它

在您的情况下,您没有应用该值

更新

此外,在定义getter和setter时,不应使用分号。那么,代码将如下所示:

public int testint
{
    get { return i; }
    set { i = value; }
}
public int testint
{
    get { return i; }
    set { i = value; }
}

我在这段代码中看到两个错误:

public int testint;
{
    get { return i; }
    set { i = testint; }
}
顶部的
testint
后面不应有分号。另外,
设置
需要使用
进行赋值,如下所示:

public int testint
{
    get { return i; }
    set { i = value; }
}
public int testint
{
    get { return i; }
    set { i = value; }
}

将您的setter更改为:

set { i = value; }

值与设置变量时发送的值相对应。

将设置方法更改为:

public int testint
{
   get { return i; }
   set { i = value; }
}
这里有一个简单的方法

public int TestInt {get; set;}

那个setter看起来不对。这只解决了我在回答中指出的一个语法错误。@JonathanWood,你是对的。不过,没必要投否决票。答案是固定的。无论是否有理由投反对票,我都没有投反对票。@JonathanWood这很酷,至少现在答案更完整了。希望这能帮助OP和future Browser让我有点不同意。没有两个语法错误:一个语法错误和一个语义错误。setter在语法上没有错误。