/// <summary> /// メソッド定義が内容的に同じであるか /// </summary> /// <param name="obj">比較対象</param> /// <returns>内容的に同じであるかどうか</returns> public bool CompareMethod(LayerdMethodDefinition obj) { if ((obj.Name == Name) && (obj.Parameters.Count == Parameters.Count)) { int n = obj.Parameters.Count; for (int i = 0; i < n; ++i) { if (!obj.Parameters[i].Type.CompareType(Parameters[i].Type)) { return(false); } } } else { return(false); } return(true); }
/// <summary> /// メソッド実装に対応するメソッド定義を返す /// </summary> /// <returns>メソッド定義</returns> public LayerdMethodDefinition ToLayerdMethodDefinition() { var result = new LayerdMethodDefinition(MethodName, ReturnType, Parameters, Contents, new string[] { }, ThisModifiers, IsNoexcept, false); return(result); }
/// <summary> /// イベントハンドラの定義 /// </summary> /// <param name="eventName">イベント名</param> /// <param name="method">メソッド情報</param> public EventHandlerDefinition(string eventName, LayerdMethodDefinition method) : base(method.Name, method.ReturnType, method.Parameters, method.Contents, method.Modifiers, method.ThisModifiers, method.IsNoexcept, method.IsOverride) { EventName = eventName; }