public sealed override DynamicMetaObject Bind(DynamicMetaObject target, DynamicMetaObject[] args)
{
ContractUtils.RequiresNotNull(target, nameof(target));
ContractUtils.RequiresNotNull(args, nameof(args));
ContractUtils.Requires(args.Length >= 2, nameof(args));
DynamicMetaObject value = args[args.Length - 1];
DynamicMetaObject[] indexes = args.RemoveLast();
ContractUtils.RequiresNotNull(value, nameof(args));
ContractUtils.RequiresNotNullItems(indexes, nameof(args));
return target.BindSetIndex(this, indexes, value);
}