コード例 #1
0
        public void AddField <T>(string pFieldName)
        {
#if DEBUG
            D.assert(!_fields.ContainsKey(pFieldName), "field does already exist!");
#endif
            TableField <T> f = new TableField <T>(pFieldName);
            AddField(f);
        }
コード例 #2
0
        /// <typeparam name="T"></typeparam>
        /// <param name="pRow"></param>
        /// <param name="pFieldName"></param>
        /// <param name="pValue"></param>
        public void SetValue <T>(int pRow, string pFieldName, T pValue)
        {
#if DEBUG
            if (!_fields.ContainsKey(pFieldName))
            {
                throw new RelayException("The field '" + pFieldName + "' does not exist");
            }
#endif
            TableField <T> field = _fields[pFieldName] as TableField <T>;
#if DEBUG
            if (field == null)
            {
                throw new RelayException("Can't access field '" + pFieldName + "' using the type '" + typeof(T).Name + "', use '" + _fields[pFieldName].type.Name + "' instead");
            }
#endif
            if (field.entries[pRow] == null)
            {
                field.entries[pRow] = new ValueEntry <T>();
            }
            field.entries[pRow].data = pValue;
        }
コード例 #3
0
        public ValueEntry <T> GetValueEntry <T>(int pRow, string pFieldName)
        {
#if DEBUG
            if (!ContainsRow(pRow))
            {
                throw new RelayException("The row " + pRow + " does not exist in table " + name);
            }
            if (!_fields.ContainsKey(pFieldName))
            {
                throw new RelayException("The field " + pFieldName + " does not exist in table " + name);
            }
            TableField <T> field = _fields[pFieldName] as TableField <T>;
            if (field == null)
            {
                throw new RelayException("Can't access field '" + pFieldName + "' using the type '" + typeof(T).Name + "', use '" + _fields[pFieldName].type.Name + "' instead");
            }
            if (field.entries[pRow] == null)
            {
                throw new RelayException("Can't get value since cell is null: row " + pRow + " field " + pFieldName);
            }
#endif
            return((_fields[pFieldName] as TableField <T>).entries[pRow]);
        }
コード例 #4
0
        public ValueEntry <T> GetValueEntryEnsureDefault <T>(int pRow, string pFieldName, T pDefaultValue)
        {
            EnsureField <T>(pFieldName);
#if DEBUG
            if (!ContainsRow(pRow))
            {
                throw new RelayException("The row " + pRow + " does not exist in table " + name);
            }
#endif
            TableField <T> field = _fields[pFieldName] as TableField <T>;
#if DEBUG
            if (field == null)
            {
                throw new RelayException("Can't access field '" + pFieldName + "' using the type '" + typeof(T).Name + "', use '" + _fields[pFieldName].type.Name + "' instead");
            }
#endif
            if (field.entries[pRow] == null)
            {
                field.entries[pRow]      = new ValueEntry <T>();
                field.entries[pRow].data = pDefaultValue;
            }
            return((_fields[pFieldName] as TableField <T>).entries[pRow]);
        }