## AbstractCalculationEngine class

Representerar användarens anpassade beräkningsmotor för att utöka standardberäkningsmotorn för Aspose.Cells.

```csharp
public abstract class AbstractCalculationEngine
```

## Egenskaper

| namn | Beskrivning |
| --- | --- |
| virtual [IsParamLiteralRequired](../../aspose.cells/abstractcalculationengine/isparamliteralrequired) { get; } | Indikerar om denna motor behöver den bokstavliga texten av parametern när den gör beräkningar. Standardvärdet är false. |
| virtual [ProcessBuiltInFunctions](../../aspose.cells/abstractcalculationengine/processbuiltinfunctions) { get; } | Huruvida inbyggda funktioner som har stöds av den inbyggda motorn ska kontrolleras och bearbetas av denna implementering. Standard är falsk. Om användaren behöver ändra beräkningslogiken för vissa inbyggda funktioner, bör denna egenskap vara satt som sant. |

## Metoder

| namn | Beskrivning |
| --- | --- |
| abstract [Calculate](../../aspose.cells/abstractcalculationengine/calculate)(CalculationData) | Beräknar en funktion med givna data. |

### Anmärkningar

Användaren bör inte ändra någon del av arbetsboken direkt i den här implementeringen (förutom det beräknade resultatet av den anpassade funktionen, som kan ställas in av egenskapen CalculationData.CalculatedValue). Annars kan oväntade resultat eller undantag orsakas. Om användaren behöver ändra andra data än beräknade resulterar i implementeringen för vissa anpassade funktioner, till exempel, ändra cells formel, stil, ... etc., användaren bör samla in dessa data i denna implementering och ändra dem utanför ramen för formelberäkningen.

### Exempel

```csharp
[C#]
public class MyEngine : AbstractCalculationEngine
{
    public override void Calculate(CalculationData data)
    {
        string funcName = data.FunctionName.ToUpper();
        if ("MYFUNC".Equals(funcName))
        {
            //gör beräkning för MYFUNC här
            int count = data.ParamCount;
            object res = null;
            for (int i = 0; i < count; i++)
            {
                object pv = data.GetParamValue(i);
                if (pv is ReferredArea)
                {
                    ReferredArea ra = (ReferredArea)pv;
                    pv = ra.GetValue(0, 0);
                }
                //bearbeta parametern här
                //res = ...;
            }
            data.CalculatedValue = res;
        }
    }
}
```

### Se även

* namnutrymme [Aspose.Cells](../../aspose.cells)
* hopsättning [Aspose.Cells](../../)

<!-- DO NOT EDIT: generated by xmldocmd for Aspose.Cells.dll -->
