    

 ## On this page

  

 

 # Class Expression

 Last update: 16.07.2025 

Namespace: [VM.Managed](VM.Managed.md)  
Assembly: VMAppCore.dll

This class is to represent the expression.

```csharp
public class Expression : LinkContainer, IObservableObject, IDisposableObject, ILinkable, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, ILinkContainerEvent, IVerifiable, IExpression

```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ← ObservableObject ← LinkableBase ← [LinkContainer](VM.Managed.LinkContainer.md) ← [Expression](VM.Managed.Expression.md)

#### Derived

[Direction](VM.Managed.Direction.md), [OrientationBase](VM.Managed.OrientationBase.md), [Point](VM.Managed.Point.md), [TransformBase](VM.Managed.TransformBase.md), [Variable](VM.Managed.Variable.md)

#### Implements

IObservableObject, IDisposableObject, ILinkable, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, [ILinkContainerEvent](VM.Managed.ILinkContainerEvent.md), [IVerifiable](VM.Managed.IVerifiable.md), IExpression

#### Inherited Members

[LinkContainer.SetModified()](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_SetModified), [LinkContainer.raise\_OnUpdating(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnUpdating_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.raise\_OnUpdate(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnUpdate_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.raise\_OnDestroying(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnDestroying_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.raise\_OnDestroy(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnDestroy_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.raise\_OnAdded(object, AddToDocEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnAdded_System_Object_VM_Managed_AddToDocEventArgs_), [LinkContainer.raise\_OnRemoved(object, RemoveFromDocEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_raise_OnRemoved_System_Object_VM_Managed_RemoveFromDocEventArgs_), [LinkContainer.GetTargetListForUpdate()](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_GetTargetListForUpdate), [LinkContainer.SkipUpdateObjectImpl()](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_SkipUpdateObjectImpl), [LinkContainer.Initialize(Unit.ConvertFactor)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Initialize_VM_Unit_ConvertFactor_), [LinkContainer.SetFlagWhenXMLFile(string, bool)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_SetFlagWhenXMLFile_System_String_System_Boolean_), [LinkContainer.IsSerializableEvent(Delegate)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_IsSerializableEvent_System_Delegate_), [LinkContainer.CustomGetObjectData(SerializationInfo, StreamingContext)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_CustomGetObjectData_System_Runtime_Serialization_SerializationInfo_System_Runtime_Serialization_StreamingContext_), [LinkContainer.GetSerializedData(SerializationInfo, StreamingContext)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_GetSerializedData_System_Runtime_Serialization_SerializationInfo_System_Runtime_Serialization_StreamingContext_), [LinkContainer.LinkRequestUpdating(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkRequestUpdating_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.LinkRequestUpdate(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkRequestUpdate_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.LinkRequestDestroying(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkRequestDestroying_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.LinkRequestDestroy(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkRequestDestroy_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.LinkAddedToDocument(object, AddToDocEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkAddedToDocument_System_Object_VM_Managed_AddToDocEventArgs_), [LinkContainer.LinkRemovedFromDocument(object, RemoveFromDocEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_LinkRemovedFromDocument_System_Object_VM_Managed_RemoveFromDocEventArgs_), [LinkContainer.OnLinkReserved(ILink, object, EventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnLinkReserved_VM_Managed_ILink_System_Object_System_EventArgs_), [LinkContainer.CanBeDestroy(object)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_CanBeDestroy_System_Object_), [LinkContainer.DisposeManagedResources()](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_DisposeManagedResources), [LinkContainer.SetContainer(IOwned, bool)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_SetContainer_VM_Models_Pre_IOwned_System_Boolean_), [LinkContainer.OnChildUpdated(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnChildUpdated_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.OnContainerDestroy(object, LinkEventArgs)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnContainerDestroy_System_Object_VM_Managed_LinkEventArgs_), [LinkContainer.OnDeserialization(object)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnDeserialization_System_Object_), [LinkContainer.Verify(VerifiedResult)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Verify_VM_Managed_VerifiedResult_), [LinkContainer.GetCopy(object)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_GetCopy_System_Object_), [LinkContainer.Dispose(bool)](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Dispose_System_Boolean_), [LinkContainer.ClearChildInfoBeforeDeserialize](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_ClearChildInfoBeforeDeserialize), [LinkContainer.Container](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Container), [LinkContainer.Owner](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Owner), [LinkContainer.Document](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_Document), [LinkContainer.ID](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_ID), [LinkContainer.IsChildExternable](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_IsChildExternable), [LinkContainer.IsExternable](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_IsExternable), [LinkContainer.OnRemoved](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnRemoved), [LinkContainer.OnAdded](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnAdded), [LinkContainer.OnDestroy](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnDestroy), [LinkContainer.OnDestroying](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnDestroying), [LinkContainer.OnUpdate](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnUpdate), [LinkContainer.OnUpdating](VM.Managed.LinkContainer.md#VM_Managed_LinkContainer_OnUpdating), LinkableBase.OnDeserialization(object), ObservableObject.Dispose(), ObservableObject.RaisePropertyChanged(string), ObservableObject.RaisePropertyChanged(string, object, object), ObservableObject.Dispose(bool), ObservableObject.DisposeManagedResources(), ObservableObject.DisposeUnmanagedResources(), ObservableObject.IsDisposed, ObservableObject.TryDisposing, ObservableObject.Disposed, ObservableObject.Disposing, ObservableObject.PropertyChanged

#### Extension Methods

[LinkPropertyItemCache.GetLinkProperties(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkProperties_System_Object_VM_Models_Pre_LinkPropertyType_), [LinkPropertyItemCache.GetLinkPropertiesAndValues(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkPropertiesAndValues_System_Object_VM_Models_Pre_LinkPropertyType_), [LinkPropertyItemCache.GetLinkedObjects(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkedObjects__1_System_Object_VM_Models_Pre_LinkPropertyType_)

## Constructors

### <a id="VM_Managed_Expression__ctor"></a> Expression()

```csharp
protected Expression()

```

## Fields

### <a id="VM_Managed_Expression_g_bSkipUpdate"></a> g\_bSkipUpdate

```csharp
public static bool g_bSkipUpdate

```

#### Field Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="VM_Managed_Expression_m_dicReferenceObject"></a> m\_dicReferenceObject

```csharp
[Obsolete]
protected Dictionary<uintptr linkcontainer.none>&gt; m_dicReferenceObject

```

#### Field Value

[Dictionary](https://learn.microsoft.com/dotnet/api/system.collections.generic.dictionary-2)[UIntPtr](https://learn.microsoft.com/dotnet/api/system.uintptr), [Link](VM.Managed.Link-4.md)[INamed](VM.Managed.INamed.md), [LinkContainer](VM.Managed.LinkContainer.md).[Update](VM.Managed.LinkContainer.Update.md), [LinkContainer](VM.Managed.LinkContainer.md).[Destroy](VM.Managed.LinkContainer.Destroy.md), [LinkContainer](VM.Managed.LinkContainer.md).[None](VM.Managed.LinkContainer.None.md)&amp;gt;&amp;gt;

### <a id="VM_Managed_Expression_m_linkCollectionReferenceObject"></a> m\_linkCollectionReferenceObject

```csharp
protected LinkListCollection<inamed linkcontainer.none>&gt; m_linkCollectionReferenceObject

```

#### Field Value

[LinkListCollection](VM.Managed.Collections.LinkListCollection-2.md)[INamed](VM.Managed.INamed.md), [Link](VM.Managed.Link-4.md)[INamed](VM.Managed.INamed.md), [LinkContainer](VM.Managed.LinkContainer.md).[Update](VM.Managed.LinkContainer.Update.md), [LinkContainer](VM.Managed.LinkContainer.md).[Destroy](VM.Managed.LinkContainer.Destroy.md), [LinkContainer](VM.Managed.LinkContainer.md).[None](VM.Managed.LinkContainer.None.md)&amp;gt;&amp;gt;

### <a id="VM_Managed_Expression_m_lstReferenceObject"></a> m\_lstReferenceObject

```csharp
[Obsolete]
protected List<link><inamed linkcontainer.none>&gt; m_lstReferenceObject

```

#### Field Value

[List](https://learn.microsoft.com/dotnet/api/system.collections.generic.list-1)[Link](VM.Managed.Link-4.md)[INamed](VM.Managed.INamed.md), [LinkContainer](VM.Managed.LinkContainer.md).[Update](VM.Managed.LinkContainer.Update.md), [LinkContainer](VM.Managed.LinkContainer.md).[Destroy](VM.Managed.LinkContainer.Destroy.md), [LinkContainer](VM.Managed.LinkContainer.md).[None](VM.Managed.LinkContainer.None.md)&amp;gt;&amp;gt;

### <a id="VM_Managed_Expression_m_pExpressionHandler"></a> m\_pExpressionHandler

```csharp
protected static ExpressionHandler* m_pExpressionHandler

```

#### Field Value

[ExpressionHandler](ExpressionHandler.md)\*

### <a id="VM_Managed_Expression_m_strValue"></a> m\_strValue

```csharp
protected string m_strValue

```

#### Field Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

## Properties

### <a id="VM_Managed_Expression_String"></a> String

Gets or sets the expression string.

```csharp
public virtual string String { get; set; }

```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

## Methods

### <a id="VM_Managed_Expression_AddReferenceObject_System_UIntPtr_"></a> AddReferenceObject(UIntPtr)

Add the reference object.

```csharp
public bool AddReferenceObject(UIntPtr ptrEntityKey)

```

#### Parameters

`ptrEntityKey` [UIntPtr](https://learn.microsoft.com/dotnet/api/system.uintptr)

The reference object key.

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

`true` if added object; already contained, `false`.

### <a id="VM_Managed_Expression_CheckReferenceObject"></a> CheckReferenceObject()

Check reference object.

```csharp
protected void CheckReferenceObject()

```

### <a id="VM_Managed_Expression_ConvertToValue_System_String_"></a> ConvertToValue(string)

Convert to value.

```csharp
protected virtual bool ConvertToValue(string strValue)

```

#### Parameters

`strValue` [string](https://learn.microsoft.com/dotnet/api/system.string)

The string.

#### Returns

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

### <a id="VM_Managed_Expression_GetNumericValue"></a> GetNumericValue()

Get numeric value.

```csharp
protected virtual double GetNumericValue()

```

#### Returns

[double](https://learn.microsoft.com/dotnet/api/system.double)

### <a id="VM_Managed_Expression_Initialize"></a> Initialize()

Initialize this class.

```csharp
protected void Initialize()

```

### <a id="VM_Managed_Expression_OnDeserialization_System_Object_"></a> OnDeserialization(object)

Called when \[deserialization\].

```csharp
protected override void OnDeserialization(object sender)

```

#### Parameters

`sender` [object](https://learn.microsoft.com/dotnet/api/system.object)

The sender.

### <a id="VM_Managed_Expression_ParseToValue_System_Char__"></a> ParseToValue(char\*)

Parse to value.

```csharp
protected virtual void ParseToValue(char* wstrValue)

```

#### Parameters

`wstrValue` [char](https://learn.microsoft.com/dotnet/api/system.char)\*

The string.

### <a id="VM_Managed_Expression_SetDefaultString_System_String__"></a> SetDefaultString(ref string)

Set default string.

```csharp
protected virtual void SetDefaultString(ref string strValue)

```

#### Parameters

`strValue` [string](https://learn.microsoft.com/dotnet/api/system.string)

The value holds default string.

### <a id="VM_Managed_Expression_Uninitialize"></a> Uninitialize()

Release expression handler.

```csharp
public static void Uninitialize()

```

### <a id="VM_Managed_Expression_UpdateByReferenceObject_System_Object_VM_Managed_LinkEventArgs_"></a> UpdateByReferenceObject(object, LinkEventArgs)

The update event occured from the reference object.

```csharp
public virtual void UpdateByReferenceObject(object obj, LinkEventArgs arg)

```

#### Parameters

`obj` [object](https://learn.microsoft.com/dotnet/api/system.object)

The reference object.

`arg` [LinkEventArgs](VM.Managed.LinkEventArgs.md)

The update event information.