ExProperty
私は以下のようなクラスを持っています:
class ExProperty
{
private int m_asimplevar;
private readonly int _s=2;
public ExProperty(int iTemp)
{
m_asimplevar = iTemp;
}
public void Asimplemethod()
{
System.Console.WriteLine(m_asimplevar);
}
public int Property
{
get {return m_asimplevar ;}
//since there is no set, this property is just made readonly.
}
}
class Program
{
static void Main(string[] args)
{
var ap = new ExProperty(2);
Console.WriteLine(ap.Property);
}
}
プロパティを読み取り専用または書き込み専用にする/使用する唯一の目的は何ですか?なるほど、
readonly
同じ目的を達成する次のプログラムを通して!プロパティを読み取り専用にする場合、書き込み可能であってはならないと思います。使うとき
public void Asimplemethod() { _s=3; //Compiler reports as "Read only field cannot be used as assignment" System.Console.WriteLine(m_asimplevar); }
はい、これは大丈夫です。
しかし、私が使用する場合
public ExProperty(int iTemp) { _s = 3 ; //compiler reports no error. May be read-only does not apply to constructors functions ? }
この場合、コンパイラがエラーを報告しないのはなぜですか?
宣言は
_s=3
大丈夫ですか?_s
または、コンストラクターを使用してその値を宣言して割り当てる必要がありますか?