|
|
(4 intermediate revisions by the same user not shown) |
Line 1: |
Line 1: |
| '''Reference Types''' are a designation of types within the [[FrooxEngine]] [[Data Model]]. They are in contrast to [[Value Type|value types]] in that they exist in one place in memory and are "passed around" by reference rather than by value, such as through a [[Type:SyncRef`1|SyncRef<T>]].
| | #REDIRECT [[Reference type]] |
| | |
| Every type in the game that is defined through a [https://learn.microsoft.com/en-us/dotnet/csharp/fundamentals/types/classes class] is a reference type. Some examples of reference types include [[Slot|Slots]], [[User|Users]], [[Component|Components]], and [[Type:IField|Fields]]. Types defined through a [https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/struct struct] are <em>not</em> reference types, such as the [[Type:Rect|Rect]] type.
| |
| | |
| In general, the analogue to reference types in [[ProtoFlux]] is the [[Type:Object|object]] type. This can cause some confusion when using nodes that interact with FrooxEngine (such as [[ProtoFlux:Data Model Store|Data Model Store]]) vs nodes that are contained entirely within protoflux (such as [[ProtoFlux:Store|Store]]). A slot is an ''Object Ref'' in the Data Model, but an ''Object'' alone in ProtoFlux contexts. A [[Type:string|string]] is a ''value'' in the Data Model, but an ''Object Field'' in ProtoFlux contexts.
| |
| | |
| == See Also ==
| |
| * [[Value Type]]
| |
| * [[Type:Object]]
| |
| * [https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/reference-types Microsoft documentation on C# Reference Types]
| |
| | |
| [[Category:Type]]
| |