    

 ## On this page

  

 

 # Class Variable

 Last update: 16.07.2025 

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

This class is to represent the variable( Variable data ). Getting the value(double type) through Value property.

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

```

#### Inheritance

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

#### Implements

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

#### Inherited Members

[Expression.g\_bSkipUpdate](VM.Managed.Expression.md#VM_Managed_Expression_g_bSkipUpdate), [Expression.m\_pExpressionHandler](VM.Managed.Expression.md#VM_Managed_Expression_m_pExpressionHandler), [Expression.m\_strValue](VM.Managed.Expression.md#VM_Managed_Expression_m_strValue), [Expression.m\_dicReferenceObject](VM.Managed.Expression.md#VM_Managed_Expression_m_dicReferenceObject), [Expression.m\_lstReferenceObject](VM.Managed.Expression.md#VM_Managed_Expression_m_lstReferenceObject), [Expression.m\_linkCollectionReferenceObject](VM.Managed.Expression.md#VM_Managed_Expression_m_linkCollectionReferenceObject), [Expression.Initialize()](VM.Managed.Expression.md#VM_Managed_Expression_Initialize), [Expression.UpdateByReferenceObject(object, LinkEventArgs)](VM.Managed.Expression.md#VM_Managed_Expression_UpdateByReferenceObject_System_Object_VM_Managed_LinkEventArgs_), [Expression.AddReferenceObject(UIntPtr)](VM.Managed.Expression.md#VM_Managed_Expression_AddReferenceObject_System_UIntPtr_), [Expression.CheckReferenceObject()](VM.Managed.Expression.md#VM_Managed_Expression_CheckReferenceObject), [Expression.SetDefaultString(ref string)](VM.Managed.Expression.md#VM_Managed_Expression_SetDefaultString_System_String__), [Expression.ConvertToValue(string)](VM.Managed.Expression.md#VM_Managed_Expression_ConvertToValue_System_String_), [Expression.ParseToValue(char\*)](VM.Managed.Expression.md#VM_Managed_Expression_ParseToValue_System_Char__), [Expression.GetNumericValue()](VM.Managed.Expression.md#VM_Managed_Expression_GetNumericValue), [Expression.OnDeserialization(object)](VM.Managed.Expression.md#VM_Managed_Expression_OnDeserialization_System_Object_), [Expression.Uninitialize()](VM.Managed.Expression.md#VM_Managed_Expression_Uninitialize), [Expression.String](VM.Managed.Expression.md#VM_Managed_Expression_String), [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&lt;T&gt;(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkedObjects__1_System_Object_VM_Models_Pre_LinkPropertyType_)

## Constructors

### Variable(double, bool)

Initializes a new instance of the  class.

```csharp
public Variable(double dValue, bool bRoundUp)

```

#### Parameters

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

The value of Variable(double type).

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

Determines whether is value without limiting the precision.

### Variable(double)

Initializes a new instance of the  class.

```csharp
public Variable(double dValue)

```

#### Parameters

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

The value of Variable(double type). This value will be rounded.

### Variable(string)

Initializes a new instance of the  class.

```csharp
public Variable(string strValue)

```

#### Parameters

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

The value of Variable(string type).

### Variable()

Initializes a new instance of the  class.

```csharp
public Variable()

```

## Properties

### DontUpdateByReferenceObject

```csharp
public bool DontUpdateByReferenceObject { set; }

```

#### Property Value

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

### IsSimpleValue

Gets the simple value.

```csharp
public virtual bool IsSimpleValue { get; }

```

#### Property Value

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

### PreciseValue

Sets the value without limiting the precision.

```csharp
public double PreciseValue { set; }

```

#### Property Value

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

### Value

Gets or sets the value

```csharp
public virtual double Value { get; set; }

```

#### Property Value

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

## Methods

### Clone()

```csharp
public virtual object Clone()

```

#### Returns

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

### ConvertToValue(string)

Convert to value.

```csharp
protected override 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)

### GetFullName()

```csharp
public virtual string GetFullName()

```

#### Returns

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

### GetNumericValue()

Get numeric value.

```csharp
protected override double GetNumericValue()

```

#### Returns

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

### GetSchema()

This method is reserved and should not be used. When implementing the IXmlSerializable interface, you should return nullNothingnullptra null reference (Nothing in Visual Basic) (Nothing in Visual Basic) from this method, and instead, if specifying a custom schema is required, apply the XmlSchemaProviderAttribute to the class.

```csharp
public virtual XmlSchema GetSchema()

```

#### Returns

[XmlSchema](https://learn.microsoft.com/dotnet/api/system.xml.schema.xmlschema)

### GetValue(string)

```csharp
public static double GetValue(string strValue)

```

#### Parameters

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

#### Returns

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

### LinkRequestDestroying(object, LinkEventArgs)

The destroying event occured from the linked object.

```csharp
protected override void LinkRequestDestroying(object obNotifier, LinkEventArgs arg)

```

#### Parameters

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

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

The destroy event information.

### LinkRequestUpdate(object, LinkEventArgs)

The update event occured from the linked object.

```csharp
protected override void LinkRequestUpdate(object objNotifier, LinkEventArgs arg)

```

#### Parameters

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

The linked object.

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

The update event information.

### ParseToValue(char\*)

Parse to value.

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

```

#### Parameters

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

The string.

### ReadXml(XmlReader)

Generates an object from its XML representation.

```csharp
public virtual void ReadXml(XmlReader reader)

```

#### Parameters

`reader` [XmlReader](https://learn.microsoft.com/dotnet/api/system.xml.xmlreader)

The XmlReader stream from which the object is deserialized.

### SetDefaultString(ref string)

Set default string.

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

```

#### Parameters

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

The value holds default string.

### SetExpression(string)

Sets the value.

```csharp
public virtual void SetExpression(string strValue)

```

#### Parameters

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

The value.

### UpdateByReferenceObject(object, LinkEventArgs)

The update event occured from the reference object.

```csharp
public override 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.

### WriteXml(XmlWriter)

Converts an object into its XML representation.

```csharp
public virtual void WriteXml(XmlWriter writer)

```

#### Parameters

`writer` [XmlWriter](https://learn.microsoft.com/dotnet/api/system.xml.xmlwriter)

The XmlWriter stream to which the object is serialized.

## Operators

### implicit operator ExpressionValueVariable(Variable)

Cast operator.

```csharp
public static implicit operator ExpressionValueVariable(Variable variable)

```

#### Parameters

`variable` [Variable](VM.Managed.Variable.md)

The Variable.

#### Returns

ExpressionValueVariable

### implicit operator Variable(ExpressionValueVariable)

Cast operator.

```csharp
public static implicit operator Variable(ExpressionValueVariable expressionValue)

```

#### Parameters

`expressionValue` ExpressionValueVariable

The ExpressionValue.

#### Returns

[Variable](VM.Managed.Variable.md)