クラス内のメソッドをプロパティに変更
目次
メソッドで構成されたクラス
正方形クラス
class Square
{
// 一辺の長さ
int side;
// フィールドsideに初期値を代入
public Square(int side)
{
this.side = side;
}
// 面積を計算するメソッド
public int GetArea()
{
// 面積
var area = side * side;
return area;
}
// 図形の周りの長さを計算するメソッド
public int GetSurround()
{
// 図形の周りの長さ
var surround = side * 4;
return surround;
}
}
Mainメソッド
class Program
{
static void Main(string[] args)
{
var square1 = new Square(3);
Console.WriteLine(square1.GetArea());
}
}
プロパティで構成されたクラス
正方形クラス
class Square
{
// 一辺の長さ(プロパティ)
public int Side { get; set; }
// フィールドsideに初期値を代入(コンストラクタ)
public Square(int side)
{
this.side = side;
}
// 面積を計算する(プロパティ)
public int Area
{
get
{
var area = Side * Side;
return area;
}
}
// 図形の周りの長さを計算する(プロパティ)
public int Surround
{
get
{
var surround = Side * 4;
return surround;
}
}
}
Mainメソッド
class Program
{
static void Main(string[] args)
{
var square1 = new Square(3);
Console.WriteLine(square1.Area);
square1.Side = 5;
Console.WriteLine(square1.Area);
}
}
おまけのリファクタリング
さらにC#の機能を適用すると次のようになります。上の2つのコードと全く同じものです。
正方形クラス
class Square
{
// 一辺の長さ(プロパティ)
public int Side { get; set; }
// フィールドsideに初期値を代入(コンストラクタ)
public Square(int side) => Side = side;
// 面積を計算する(プロパティ)
public int Area => Side * Side;
// 図形の周りの長さを計算する(プロパティ)
public int Surround => Side * 4;
}
Mainメソッド
class Program
{
static void Main(string[] args)
{
var square1 = new Square(3);
Console.WriteLine(square1.Area);
square1.Side = 5;
Console.WriteLine(square1.Area);
}
}
ディスカッション
コメント一覧
まだ、コメントがありません