Bike.Interpreter.Interpreter.InterceptArrayIndex C# (CSharp) Метод

InterceptArrayIndex() приватный статический Метод

private static InterceptArrayIndex ( object target, string funcName, object args, object &result ) : bool
target object
funcName string
args object
result object
Результат bool
        private static bool InterceptArrayIndex(object target, string funcName, object[] args, out object result)
        {
            if (target is Array)
            {
                if (funcName == IndexerGetterName)
                {
                    if (args.Length != 1)
                        throw ErrorFactory.CreateClrError("Invalid number of indexer arguments");
                    int index = args[0] is BikeNumber
                                    ? (int) ((BikeNumber) args[0]).Value
                                    : (int) (decimal) args[0];
                    result = ((Array)target).GetValue(index);
                    return true;
                }
                if (funcName == IndexerSetterName)
                {
                    if (args.Length != 2)
                        throw ErrorFactory.CreateClrError("Invalid number of indexer arguments");
                    int index = args[0] is BikeNumber
                                    ? (int)((BikeNumber)args[0]).Value
                                    : (int)(decimal)args[0];
                    object value = InterpretationContext.Instance.Interpreter.MarshallToClr(args[1]);
                    ((Array)target).SetValue(value, index);
                    result = null;
                    return true;
                }
            }
            result = null;
            return false;
        }