Пример #1
0
        /****************************/
        /* PUBLIC GETTERS / SETTERS */
        /****************************/

        /// <summary>Gets or sets the value at the specified column and row of the generic matrix</summary>
        /// <param name="column">Column to access. Values are relative to the matrix view window</param>
        /// <param name="row">Row to access. Values are relative to the matrix view window</param>
        /// <returns>Value of the element at the specified column and row</returns>
        public virtual T this[Int32 column, Int32 row]
        {
            get
            {
                if (!_dataColumnRange.Contains(column + _dataColumnRange.Start))
                {
                    throw new ArgumentOutOfRangeException("column");
                }
                if (!_dataRowRange.Contains(row + _dataRowRange.Start))
                {
                    throw new ArgumentOutOfRangeException("row");
                }
                return(_dataSource[column + _dataColumnRange.Start, row + _dataRowRange.Start]);
            }
            set
            {
                if (!_dataColumnRange.Contains(column + _dataColumnRange.Start))
                {
                    throw new ArgumentOutOfRangeException("column");
                }
                if (!_dataRowRange.Contains(row + _dataRowRange.Start))
                {
                    throw new ArgumentOutOfRangeException("row");
                }
                _dataSource[column + _dataColumnRange.Start, row + _dataRowRange.Start] = value;
            }
        }