MAXScript Tools and Interaction with 3ds Max > DotNet In MAXScript >

# dotnetmxsvalue

The dotNetMXSValue value class holds another value. The dotNetMXSValue can be assigned to .net objects. A "proxy"DotNet value is actually stored to theDotNet object, and that proxy points back to the dotNetMXSValue.

As long as the DotNet object holds the proxy value, the dotNetMXSValue and the value it holds are protected from garbage collection.

Available in 3ds Max 9 and higher.

EXAMPLE
    a = color 10 20 30 --MAXScript color value
    b = dotNetMXSValue a --DotNet value holding the MAXScript value
    tv = dotnetobject "treeview" --DotNet TreeView control
    tv.tag = b --The tag is set to the color
    tv.tag
    a=b=undefined --Both a and b are set to undefined
    gc() --and manual garbage collection is requested --BUT the color value and dotNetMXSValue protected are from --collection because the treeview instance holds --the dotNetMXSValue proxy!
    tv = undefined- -assign undefined to the treeview variable
    gc() --and request garbage collection again --This time both the color value and the dotNetMXSValue are not --protected from collection

Note that the above garbage collection may not delete the color value and the dotNetMXSValue because the DotNet garbage collector has not deleted the treeview and freed its values yet. One can force manual garbage collection of DotNet:

EXAMPLE
    dgc = dotnetclass "system.gc"
    dgc.collect()
    gc() -- color value and dotNetMXSValue collected

#### See Also

- DotNet In MAXScript