基本的なプロパティの形は、次のようになる。
read/write, read-only, write-only は、set/getメソッドを実装するかどうかコントロールする。
class Computer
{ public int Speed
{
get
{
return speed;
}
set
{
speed = value;
}
}
}
もう1つ、オーバーライドの方法として、override キーワードを使用する。
// ToString をオーバライドする
public override string ToString()
{
return "Processor Type = " + this.ProcessorType + ", Processor Speed = " + this.Speed;
}
このオーバーライドにより、
Console.WriteLine("\nNew Computer {0}", myComputer);
を実行すると、オーバーライドされた myComputer.ToString() が呼ばれ、
New Computer Processor Type = Pentium
IV, Processor Speed = 2000
が出力される。
オーバーライドしない場合、
New Computer PropertyTest.Computer
と、オブジェクト名が表示される。
|
using System;
namespace PropertyTest
{
/// <summary>
/// About Computer Class
/// </summary>
class Computer
{
// 初期値の設定
private string processorType ="Celeron";
private int speed = 1000;
// int型の Speed プロパティの宣言
public int Speed
{
get
{
return speed;
}
set
{
speed = value;
}
}
// string型の ProcessorType プロパティの宣言
public string ProcessorType
{
get
{
return processorType;
}
set
{
processorType = value;
}
}
// ToString をオーバライドする
public override string ToString()
{ return "Processor Type = " + this.ProcessorType + ", Processor Speed = " + this.Speed;
}
public static void Main()
{
// Create a new Computer object:
Computer myComputer = new Computer();
Console.WriteLine("Initial Computer {0}", myComputer);
// I bought a new computer
myComputer.ProcessorType = "Pentium IV";
myComputer.speed = 2000;
Console.WriteLine("\nNew Computer {0}", myComputer);
Console.WriteLine("\nNew Processor Type is {0}", myComputer.ProcessorType);
Console.WriteLine("\nNew Computer Speed is {0}", myComputer.Speed );
// こんなこともできる。
Console.WriteLine("myComputer.Speed++ is {0}", myComputer.Speed++ );
// これもOK.
Console.WriteLine("++myComputer.Speed is {0}", ++myComputer.Speed );
// こんなこともできる。
Console.WriteLine("\nNew Processor Type is {0}", myComputer.ProcessorType+=" Hello");
// これもOK.
Console.WriteLine("\nNew Processor Type is {0}", myComputer.ProcessorType+" World!");
}
}
} |