public MyDelegate(MethodInfo method) { if (method == null) { throw new ArgumentNullException(nameof(method)); } _listOfMethods = new List <MethodInfo> { method }; _signatureOfFunction = new ParametersAndType(method.GetParameters(), method.ReturnType); Exceptions = new List <Exception>(); }
public void AddMethod(MethodInfo method) { if (method == null) { throw new ArgumentNullException(nameof(method)); } if (_listOfMethods.Count == 0) { _listOfMethods = new List <MethodInfo>(); _signatureOfFunction = new ParametersAndType(method.GetParameters(), method.ReturnType); } if (method.ReturnType != _signatureOfFunction.ReturnType || !ParametersInfoEquality(method.GetParameters(), _signatureOfFunction.Parameters)) { throw new InvalidOperationException("Сигнатуры функций не совпадают"); } _listOfMethods.Add(method); }