/// <summary>
        /// Gets the <see cref="Canon.Eos.Framework.EosCamera"/> at the specified index.
        /// </summary>
        public EosCamera this[int index]
        {
            get
            {
                this.CheckDisposed();
                if (index < 0 || index >= this.Count)
                {
                    throw new IndexOutOfRangeException();
                }

                IntPtr camera;
                Util.Assert(Edsdk.EdsGetChildAtIndex(_cameraList, index, out camera), string.Format("Failed to get camera #{0}.", index + 1));
                if (camera == IntPtr.Zero)
                {
                    throw new EosException(Edsdk.EDS_ERR_DEVICE_NOT_FOUND, string.Format("Failed to get camera #{0}.", index + 1));
                }
                return(new EosCamera(camera));
            }
        }