# C1.CalcEngine.C1CalcEngine

## Content

<div class="doc-site-dotnet-api-container">



  <h1 id="C1_CalcEngine_C1CalcEngine" data-uid="C1.CalcEngine.C1CalcEngine" class="text-break">C1CalcEngine Class
</h1>
  <div class="markdown level0 summary"><p>The <a class="xref" href="C1.CalcEngine.C1CalcEngine.html">C1CalcEngine</a> class is used to work with expression engines, and provides an API for analyzing and evaluate expression.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><a class="xref" href="https://learn.microsoft.com/dotnet/api/system.object">object</a></div>
    <div class="level1"><span class="xref">C1CalcEngine</span></div>
  </div>
  <div class="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="C1.CalcEngine.IEngine.html">IEngine</a></div>
    <div><a class="xref" href="C1.CalcEngine.IEngineExtended.html">IEngineExtended</a></div>
    <div><a class="xref" href="C1.CalcEngine.IEngineExpressionItems.html">IEngineExpressionItems</a></div>
    <div><a class="xref" href="C1.CalcEngine.ISupportAliases.html">ISupportAliases</a></div>
    <div><a class="xref" href="C1.CalcEngine.ISupportCustomFunctions.html">ISupportCustomFunctions</a></div>
    <div><a class="xref" href="C1.CalcEngine.ISupportVariables.html">ISupportVariables</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="C1.CalcEngine.html">C1.CalcEngine</a></h6>
  <h6><strong>Assembly</strong>: C1.CalcEngine.dll</h6>
  <h5 id="C1_CalcEngine_C1CalcEngine_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public class C1CalcEngine : IEngine, IEngineExtended, IEngineExpressionItems, ISupportAliases, ISupportCustomFunctions, ISupportVariables</code></pre>
  </div>
  <div class="codewrapper">
    <pre><code class="lang-vbnet hljs">Public Class C1CalcEngine
    Implements IEngine, IEngineExtended, IEngineExpressionItems, ISupportAliases, ISupportCustomFunctions, ISupportVariables</code></pre>
  </div>
  <h3 id="constructors">Constructors
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine__ctor" data-uid="C1.CalcEngine.C1CalcEngine.#ctor">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.-ctor.html#C1_CalcEngine_C1CalcEngine__ctor">C1CalcEngine()</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="C1.CalcEngine.C1CalcEngine.html">C1CalcEngine</a> class with the default engine.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine__ctor_C1_CalcEngine_IEngine_" data-uid="C1.CalcEngine.C1CalcEngine.#ctor(C1.CalcEngine.IEngine)">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.-ctor.html#C1_CalcEngine_C1CalcEngine__ctor_C1_CalcEngine_IEngine_">C1CalcEngine(IEngine)</a>
        </td>
        <td class="markdown level1 summary"><p>Initializes a new instance of the <a class="xref" href="C1.CalcEngine.C1CalcEngine.html">C1CalcEngine</a> class with the custom engine.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_CultureInfo" data-uid="C1.CalcEngine.C1CalcEngine.CultureInfo">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.CultureInfo.html#C1_CalcEngine_C1CalcEngine_CultureInfo">CultureInfo</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the <a class="xref" href="C1.CalcEngine.C1CalcEngine.CultureInfo.html#C1_CalcEngine_C1CalcEngine_CultureInfo">CultureInfo</a> to use when parsing numbers and dates.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_CurrentIndex" data-uid="C1.CalcEngine.C1CalcEngine.CurrentIndex">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.CurrentIndex.html#C1_CalcEngine_C1CalcEngine_CurrentIndex">CurrentIndex</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the index of the entry from data source.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_DataSource" data-uid="C1.CalcEngine.C1CalcEngine.DataSource">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.DataSource.html#C1_CalcEngine_C1CalcEngine_DataSource">DataSource</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets the object used as the data source.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_Engine" data-uid="C1.CalcEngine.C1CalcEngine.Engine">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.Engine.html#C1_CalcEngine_C1CalcEngine_Engine">Engine</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets current <a class="xref" href="C1.CalcEngine.IEngine.html">IEngine</a>.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_EngineExtended" data-uid="C1.CalcEngine.C1CalcEngine.EngineExtended">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.EngineExtended.html#C1_CalcEngine_C1CalcEngine_EngineExtended">EngineExtended</a>
        </td>
        <td class="markdown level1 summary"><p>Gets the <a class="xref" href="C1.CalcEngine.IEngineExtended.html">IEngineExtended</a> object when the current <a class="xref" href="C1.CalcEngine.IEngine.html">IEngine</a> implements it.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_Expression" data-uid="C1.CalcEngine.C1CalcEngine.Expression">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.Expression.html#C1_CalcEngine_C1CalcEngine_Expression">Expression</a>
        </td>
        <td class="markdown level1 summary"><p>Gets or sets expression string.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_IsValid" data-uid="C1.CalcEngine.C1CalcEngine.IsValid">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.IsValid.html#C1_CalcEngine_C1CalcEngine_IsValid">IsValid</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a value that indicates whether the expression is valid.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
</h3>
  <table class="table table-bordered table-condensed">
    <thead>
      <tr>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_AddAlias_System_String_System_String_" data-uid="C1.CalcEngine.C1CalcEngine.AddAlias(System.String,System.String)">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.AddAlias.html#C1_CalcEngine_C1CalcEngine_AddAlias_System_String_System_String_">AddAlias(string, string)</a>
        </td>
        <td class="markdown level1 summary"><p>Adds an alias for a field from DataSource.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_AddFunction_System_Collections_Generic_List_C1_CalcEngine_ExpressionItem__System_Func_System_Collections_Generic_List_System_Object__System_Object__System_Int32_System_Int32_" data-uid="C1.CalcEngine.C1CalcEngine.AddFunction(System.Collections.Generic.List{C1.CalcEngine.ExpressionItem},System.Func{System.Collections.Generic.List{System.Object},System.Object},System.Int32,System.Int32)">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.AddFunction.html#C1_CalcEngine_C1CalcEngine_AddFunction_System_Collections_Generic_List_C1_CalcEngine_ExpressionItem__System_Func_System_Collections_Generic_List_System_Object__System_Object__System_Int32_System_Int32_">AddFunction(List&lt;ExpressionItem&gt;, Func&lt;List&lt;object&gt;, object&gt;, int, int)</a>
        </td>
        <td class="markdown level1 summary"><p>Adds a custom function.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_AddVariable_System_String_System_Object_" data-uid="C1.CalcEngine.C1CalcEngine.AddVariable(System.String,System.Object)">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.AddVariable.html#C1_CalcEngine_C1CalcEngine_AddVariable_System_String_System_Object_">AddVariable(string, object)</a>
        </td>
        <td class="markdown level1 summary"><p>Adds a variable.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_Evaluate" data-uid="C1.CalcEngine.C1CalcEngine.Evaluate">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.Evaluate.html#C1_CalcEngine_C1CalcEngine_Evaluate">Evaluate()</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a result of expression.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_GetErrors" data-uid="C1.CalcEngine.C1CalcEngine.GetErrors">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.GetErrors.html#C1_CalcEngine_C1CalcEngine_GetErrors">GetErrors()</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a enumerator of <a class="xref" href="C1.CalcEngine.ErrorInfo.html">ErrorInfo</a> objects.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_GetExpressionItems" data-uid="C1.CalcEngine.C1CalcEngine.GetExpressionItems">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.GetExpressionItems.html#C1_CalcEngine_C1CalcEngine_GetExpressionItems">GetExpressionItems()</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a enumerator of <a class="xref" href="C1.CalcEngine.ExpressionItem.html">ExpressionItem</a> of the current context.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_TryAddAlias_System_String_System_String_" data-uid="C1.CalcEngine.C1CalcEngine.TryAddAlias(System.String,System.String)">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.TryAddAlias.html#C1_CalcEngine_C1CalcEngine_TryAddAlias_System_String_System_String_">TryAddAlias(string, string)</a>
        </td>
        <td class="markdown level1 summary"><p>Tries to add an alias for a field from DataSource.</p>
</td>
      </tr>
      <tr>
        <td id="C1_CalcEngine_C1CalcEngine_TryEvaluate_System_Object__" data-uid="C1.CalcEngine.C1CalcEngine.TryEvaluate(System.Object@)">
          <a class="xref" href="C1.CalcEngine.C1CalcEngine.TryEvaluate.html#C1_CalcEngine_C1CalcEngine_TryEvaluate_System_Object__">TryEvaluate(out object)</a>
        </td>
        <td class="markdown level1 summary"><p>Gets a result of expression. A return value indicates whether the evaluate succeeded or failed.</p>
</td>
      </tr>
    </tbody>
  </table>

</div>
