Skip to content

API Host ScriptDatum

Liu.Yandong.Hanks edited this page Aug 21, 2026 · 3 revisions

ScriptDatum

Represents a tagged AuroraScript value at the host boundary.

Back to .NET Host API Reference

Overview

Primary host-visible runtime value. Use factories or ClrMarshaller to create values and Kind/TryGet helpers to inspect them.

Quick Reference

var datum = ScriptDatum.FromNumber(42);
if (datum.Kind == ValueKind.Number)
{
    Console.WriteLine(datum.Number);
}

Properties

Null

The script null value.

static readonly ScriptDatum Null

Parameters

None.

Returns

Returns ScriptDatum.

NaN

The script not-a-number value.

static readonly ScriptDatum NaN

Parameters

None.

Returns

Returns ScriptDatum.

True

The script true value.

static readonly ScriptDatum True

Parameters

None.

Returns

Returns ScriptDatum.

False

The script false value.

static readonly ScriptDatum False

Parameters

None.

Returns

Returns ScriptDatum.

Kind

The tag that identifies the active payload.

ValueKind Kind

Parameters

None.

Returns

Returns ValueKind.

Number

The numeric payload; inspect it when Kind is Number.

double Number

Parameters

None.

Returns

Returns double.

Boolean

The Boolean payload; inspect it when Kind is Boolean.

bool Boolean

Parameters

None.

Returns

Returns bool.

Object

The object payload for object-backed kinds.

ScriptObject Object

Parameters

None.

Returns

Returns ScriptObject.

String

The string payload; inspect it when Kind is String.

StringValue String

Parameters

None.

Returns

Returns StringValue.

Methods

FromBoolean

Creates a datum containing a Boolean.

static ScriptDatum FromBoolean(bool value)

Parameters

Name Type Required Description
value bool Yes Source value to wrap.

Returns

Returns ScriptDatum.

FromNumber

Creates a datum containing a number.

static ScriptDatum FromNumber(double value)

Parameters

Name Type Required Description
value double Yes Source value to wrap.

Returns

Returns ScriptDatum.

FromString

Creates a datum containing a string.

static ScriptDatum FromString(string value)

Parameters

Name Type Required Description
value string Yes Source value to wrap.

Returns

Returns ScriptDatum.

FromString

Creates a datum containing a string.

static ScriptDatum FromString(StringValue value)

Parameters

Name Type Required Description
value StringValue Yes Source value to wrap.

Returns

Returns ScriptDatum.

FromArray

Creates a datum containing a script array.

static ScriptDatum FromArray(ScriptArray value)

Parameters

Name Type Required Description
value ScriptArray Yes Source value to wrap.

Returns

Returns ScriptDatum.

FromDate

Creates a datum containing a date.

static ScriptDatum FromDate(DateTime date)

Parameters

Name Type Required Description
date DateTime Yes Source date to wrap.

Returns

Returns ScriptDatum.

FromDate

Creates a datum containing a date.

static ScriptDatum FromDate(DateTimeOffset date)

Parameters

Name Type Required Description
date DateTimeOffset Yes Source date to wrap.

Returns

Returns ScriptDatum.

FromRegex

Creates a datum containing a regular expression.

static ScriptDatum FromRegex(ScriptRegex value)

Parameters

Name Type Required Description
value ScriptRegex Yes Source value to wrap.

Returns

Returns ScriptDatum.

FromObject

Creates a datum containing a script object.

static ScriptDatum FromObject(ScriptObject value)

Parameters

Name Type Required Description
value ScriptObject Yes Source value to wrap.

Returns

Returns ScriptDatum.

FromError

Creates a datum containing a script error.

static ScriptDatum FromError(ScriptError value)

Parameters

Name Type Required Description
value ScriptError Yes Source value to wrap.

Returns

Returns ScriptDatum.

FromBonding

Creates a datum containing a raw host callback.

static ScriptDatum FromBonding(ClrDatumDelegate value)

Parameters

Name Type Required Description
value ClrDatumDelegate Yes Source value to wrap.

Returns

Returns ScriptDatum.

ToObject

Returns the object representation of a datum.

static ScriptObject ToObject(ScriptDatum d)

Parameters

Name Type Required Description
d ScriptDatum Yes Datum to inspect or convert.

Returns

Returns ScriptObject.

IsTrue

Tests script truthiness.

static bool IsTrue(ScriptDatum d)

Parameters

Name Type Required Description
d ScriptDatum Yes Datum to inspect or convert.

Returns

Returns bool.

IsFalse

Tests script falsiness.

static bool IsFalse(ScriptDatum d)

Parameters

Name Type Required Description
d ScriptDatum Yes Datum to inspect or convert.

Returns

Returns bool.

GetTypeName

Returns the runtime type name.

static string GetTypeName(ScriptDatum d)

Parameters

Name Type Required Description
d ScriptDatum Yes Datum to inspect or convert.

Returns

Returns string.

TypeOf

Returns the script typeof result.

static ScriptDatum TypeOf(ScriptDatum d)

Parameters

Name Type Required Description
d ScriptDatum Yes Datum to inspect or convert.

Returns

Returns ScriptDatum.

ToString

Returns the script string representation.

static string ToString(ScriptDatum d)

Parameters

Name Type Required Description
d ScriptDatum Yes Datum to inspect or convert.

Returns

Returns string.

TryToNumber

Attempts numeric conversion without throwing for a conversion failure.

static bool TryToNumber(in ScriptDatum d, out double value)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
value out double Yes Receives the converted or extracted value when the method returns true.

Returns

Returns bool.

TryToInteger

Attempts integer conversion without throwing for a conversion failure.

static bool TryToInteger(in ScriptDatum d, out long value)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
value out long Yes Receives the converted or extracted value when the method returns true.

Returns

Returns bool.

TryGetAnyObject

Attempts to read any object-backed payload.

static bool TryGetAnyObject(in ScriptDatum d, out ScriptObject value)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
value out ScriptObject Yes Receives the converted or extracted value when the method returns true.

Returns

Returns bool.

TryGetObject

Attempts to read an object payload.

static bool TryGetObject(in ScriptDatum d, out ScriptObject value)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
value out ScriptObject Yes Receives the converted or extracted value when the method returns true.

Returns

Returns bool.

TryGetArray

Attempts to read an array payload.

static bool TryGetArray(in ScriptDatum d, out ScriptArray value)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
value out ScriptArray Yes Receives the converted or extracted value when the method returns true.

Returns

Returns bool.

TryGetString

Attempts to read a string payload.

static bool TryGetString(in ScriptDatum d, out StringValue value)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
value out StringValue Yes Receives the converted or extracted value when the method returns true.

Returns

Returns bool.

TryGetDate

Attempts to read a date payload.

static bool TryGetDate(in ScriptDatum d, out ScriptDate value)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
value out ScriptDate Yes Receives the converted or extracted value when the method returns true.

Returns

Returns bool.

TryGetRegex

Attempts to read a regular-expression payload.

static bool TryGetRegex(in ScriptDatum d, out ScriptRegex value)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
value out ScriptRegex Yes Receives the converted or extracted value when the method returns true.

Returns

Returns bool.

TryGetFunction

Attempts to read a closure payload.

static bool TryGetFunction(in ScriptDatum d, out ClosureFunction value)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
value out ClosureFunction Yes Receives the converted or extracted value when the method returns true.

Returns

Returns bool.

TryGetError

Attempts to read an error payload.

static bool TryGetError(in ScriptDatum d, out ScriptError value)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
value out ScriptError Yes Receives the converted or extracted value when the method returns true.

Returns

Returns bool.

Clone

Clones a datum; optionally deep-clones object-backed content.

static ScriptDatum Clone(in ScriptDatum d, bool deepth = false)

Parameters

Name Type Required Description
d in ScriptDatum Yes Datum to inspect or convert.
deepth bool No true to request a deep clone; otherwise performs the default clone.

Returns

Returns ScriptDatum.

Conversions

bool to ScriptDatum

Implicitly converts bool values to ScriptDatum.

bool -> ScriptDatum

Parameters

Name Type Required Description
source bool Yes CLR value to convert.

Returns

Returns ScriptDatum.

string to ScriptDatum

Implicitly converts string values to ScriptDatum.

string -> ScriptDatum

Parameters

Name Type Required Description
source string Yes CLR value to convert.

Returns

Returns ScriptDatum.

int/long/float/double and related numeric types to ScriptDatum

Implicitly converts int/long/float/double and related numeric types values to ScriptDatum.

int/long/float/double and related numeric types -> ScriptDatum

Parameters

Name Type Required Description
source int/long/float/double and related numeric types Yes CLR value to convert.

Returns

Returns ScriptDatum.

Clone this wiki locally