Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ Evaluate() [2/4]

object System.Data.DataExpression.Evaluate ( DataRow row,
DataRowVersion version )
inlinepackage

Definition at line 105 of file DataExpression.cs.

106 {
107 if (!_bound)
108 {
109 Bind(_table);
110 }
111 object obj;
112 if (_expr != null)
113 {
114 obj = _expr.Eval(row, version);
115 if (obj != DBNull.Value || StorageType.Uri < _storageType)
116 {
117 try
118 {
119 if (StorageType.Object != _storageType)
120 {
122 }
123 }
124 catch (Exception ex) when (ADP.IsCatchableExceptionType(ex))
125 {
126 ExceptionBuilder.TraceExceptionForCapture(ex);
127 throw ExprException.DatavalueConvertion(obj, _dataType, ex);
128 }
129 }
130 }
131 else
132 {
133 obj = null;
134 }
135 return obj;
136 }
static bool IsCatchableExceptionType(Exception e)
Definition ADP.cs:790
static object ChangeType2(object value, StorageType stype, Type type, IFormatProvider formatProvider)
void Bind(DataTable table)
readonly StorageType _storageType
IFormatProvider FormatProvider
Definition DataTable.cs:435

References System.Data.DataExpression._bound, System.Data.DataExpression._dataType, System.Data.DataExpression._expr, System.Data.DataExpression._storageType, System.Data.DataExpression._table, System.Data.DataExpression.Bind(), System.Data.Common.SqlConvert.ChangeType2(), System.Data.ExprException.DatavalueConvertion(), System.Data.ExpressionNode.Eval(), System.Data.DataTable.FormatProvider, System.Data.Common.ADP.IsCatchableExceptionType(), System.obj, System.Data.ExceptionBuilder.TraceExceptionForCapture(), and System.DBNull.Value.