クラス内のメンバー並び順
クラス内のメンバーの並びは仕様上は前後を問いません
しかし、クラスごとにバラバラなのは気持ちが悪いですね
これしかないわけではありませんが、参考にしてください
メンバー並び順のルール(参考)
クラス、構造体、インターフェース内の順番
- 定数フィールド
- フィールド
- コンストラクタ
- デストラクタ(ファイナライザ )
- デリゲート
- イベント
- 列挙型
- インターフェース (インターフェースの実装)
- プロパティ
- インデクサー
- メソッド
アクセス修飾子の順番
- public
- internal
- protected internal
- protected
- private
各アクセスの項目内のstatic, 非staticで分ける
- static
- 非static
実際のルールに則ったコード
using System;
namespace MyNamespace
{
public class TestClass
{
// 定数フィールド
const string API = "ABC";
//フィールド
private int PrivateField;
private string[] data = new string[10];
//コンストラクタ
public TestClass(int val)
{
PrivateField = val;
}
// デストラクタ(ファイナライザ)
~TestClass() { }
// デリゲート
public delegate void Delegate(int a);
// イベント
public event Action Changed;
//列挙型
public enum PublicEnum
{
One,
Two,
}
// インターフェースの実装
public void InterfaceJssou()
{
}
//プロパティ
public int PublicProperty
{
get
{
return PrivateField;
}
}
// インデクサ
public string this[int index]
{
get
{
// インデックスが有効であるか確認
if (index >= 0 && index < data.Length)
{
return data[index];
}
else
{
throw new IndexOutOfRangeException("Invalid index");
}
}
set
{
// インデックスが有効であるか確認
if (index >= 0 && index < data.Length)
{
data[index] = value;
}
else
{
throw new IndexOutOfRangeException("Invalid index");
}
}
}
// メソッド
public string PublicMethod(string str)
{
str = "PublicMethodが呼び出されました。" + str;
return str;
}
public string PublicMethod()
{
return PublicMethod("");
}
}
}
ディスカッション
コメント一覧
まだ、コメントがありません