我有这个班级
class cell
{
public cell()
{
T= -1;
M= -1;
s= false;
}
public cell(int T, int M)
{
this.T= T;
this.M= M;
this.s= false;
}
int T;
int M;
bool s;
}
这个"矩阵":
cell[,] test = new cell[10, 4];
然后我需要访问我的类单元格的字段,我尝试了这个:
for (var i = startR; i < nR; i++)
{
for (var j = startR; j < nC; j++)
{
var p = test[i, j];
}
}
但如果我尝试p.s
或p.T
或p.M
,我就看不到这些属性。为什么?我如何访问这些字段?
答案 0 :(得分:2)
您的字段为aws configure set region us-east-1
(private
是类内的默认访问修饰符)。制作所有字段private
:
public
或更好的方式
您可以将字段更改为public int T;
public int M;
public bool s;
自动属性(因为字段不应为public
):
public
或者
如果您需要字段和属性:
public int T { get; set;}
public int M { get; set;}
public bool s { get; set;}
然后阅读或写简单地使用这些属性:
int T;
int M;
bool s;
public int TProperty
{
get {return T;}
set {T = value;}
}
public int MProperty
{
get {return M;}
set {M = value;}
}
public bool SProperty
{
get {return s;}
set {s = value;}
}
答案 1 :(得分:0)
您可以创建公共只读自动属性,例如。如下例所示:
class cell
{
public cell()
{
T = -1;
M = -1;
S = false;
}
public cell(int t, int m)
{
T = t;
M = m;
S = false;
}
public int T { get; }
public int M { get; }
public bool S { get; }
}
从构造函数中设置值(正如您已经完成的那样)并使用readonly属性通常比暴露公共setter更好(除非您有充分理由这样做),作为{{1}的实例class将是不可变的,并且在实例化后不会被更改。