初心者のためのC#プログラミング本格入門40 - プロパティでフィールドの値を取得しよう
前回メソッド(インスタンスメソッド)を使用して、インスタンスが保持するフィールドの値を操作できる事を書きました。では、どうやってインスタンスが保持するフィールドの値を使用するのでしょうか?今のままではフィールドの値にアクセスできません。試しにサンプルプログラムのAnalyzerを使用してみましょう。
static void Main()
{
//型のインスタンスを生成
Analyzer obj = new Analyzer();
obj.AnalyzeExpression("+ 1 2 3");
//valuesの値を取得できない!
int[] values = obj.values;
}
このプログラムを書くと、「'Program.Analyzer.values' はアクセスできない保護レベルになっています。」というエラーが発生します。そうです。今のままではインスタンスが保持するフィールドの値にアクセス出来ないのです。これを解決するには、プロパティという文法を使用します。プロパティは次の様に書きます・・・
//定義
public 戻り値の型 プロパティの名前
{
get
{
//ここに1行以上のプログラムを書く
}
}
//実例
class Analyzer
{
int[] values;
public int[] Values
{
get { return this.values; }
}
}
書き方は大体分かったと思います。初心者の方は恐らく、「ただフィールドの値を取得するだけなのに、何で一々面倒な事を書くんだろう?」と不思議に思った事でしょう。確かにこの様な単純なプログラムで、プロパティを使うのは無駄に見えるでしょう。しかし、プロパティの働きはフィールドの値を取得する事だけではありません。プロパティを使うと、フィールドでは出来ない事が出来るようになります。
何が出来るようになるのか気になると思いますが、一度に聞くと混乱すると思いますので少しずつ解説していきます。C#プログラミングをマスターするコツは焦らない事です。焦らずじっくり学習しましょう。