他の誰か/C#の初心者がより具体的な説明/例を必要とする場合に備えて:
public class ExampleClass
{
// DelegateNames = NameOfObject + Verb + ("ed" or "ing") + "Handler".
// NameOfObject = Data, File, Property, Value, Window, Settings, User,...
// Verb = Open, Close, Format, Clear, Delete, Create, Insert, Update, Refresh, Dispose, Sort,...
public delegate void SomethingHappenedHandler(object pSender, object pWhat);
public delegate void SomeValueChangedHandler(object pSender, object pWhat, object pOldValue, object pNewValue);
public delegate void SomethingFinishedHandler(object pSender);
public delegate void SomethingInvokedHandler();
// EventNames = DelegateName - "Handler".
public event SomethingHappenedHandler SomethingHappened;
public event SomeValueChangedHandler SomeValueChanged;
public event SomethingFinishedHandler SomethingFinished;
public event SomethingInvokedHandler SomethingInvoked;
// EventHandlingMethodNames = "On" + EventName.
private void OnSomethingHappened(object pSender, object pWhat) { /* Code...*/ }
private void OnSomeValueChanged(object pSender, object pWhat, object pOldValue, object pNewValue) { /* Code...*/ }
private void OnSomethingFinished(object pSender) { /* Code...*/ }
private void OnSomethingInvoked() { /* Code...*/ }
// EventInvokingMethods = ("Fire" | "Notify" | "Invoke") + EventName.
private void FireSomethingHappened(object pSender, object pWhat) { /* SomethingHappened?.Invoke(...); */ }
private void NotifySomeValueChanged(object pSender, object pWhat, object pOldValue, object pNewValue) { /* SomeValueChanged?.Invoke(...); */ }
private void InvokeSomethingFinished(object pSender) { /* SomethingFinished?.Invoke(...); */ }
private void NotifySomethingInvoked() { /* SomethingInvoked?.Invoke(...); */ }
}
C# の他のプログラム要素については、次のオプションの規則を使用します (使用できます)。
- 言語の大文字と小文字の区別 (UpperCamelCase または LowerCamelCase) を常に使用してください。
- 常にプログラミング言語の命名規則/規則に従ってください! (フレームワークのネーミングを参照/分析/コピーしてください!)
- 名前がルール 0 および 1 に違反していない場合にのみ、命名にプレフィックスを使用します。
- のように: "p" + ParameterName (ローカル変数とパラメーター間の認識を向上させるため)
- または: "m" + MemberVariableName (ローカル変数とメンバー変数の認識を向上させるため。
- または: "I" + InterfaceName (例: IDeserialize、IXmlConvert、...)
- または: "A" + AbstracClassName (ADeserializer、AXmlConvert など)
- または: "E" + EnumerationName (例: EState、EErrorCode、EMemberType、...)
- または: "S" + StaticVarialeNames
- ALL_UPPER_CASE:
- コンパイル時定数 "public const double MY_CONST = -1.23;"
- ランタイム定数: "public static readonly MyClass MY_CLASS = new MyClass()...")