You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`T1Name`, `T2Name`, ... |`string?`| Type name | Override member name for T1, T2, etc. |
185
-
|`T1IsNullableReferenceType`, `T2IsNullableReferenceType`, ... |`bool`|`false`| Mark T1, T2, etc. as nullable reference type (no effect for value types) |
|`T1Name`, `T2Name`, ... |`string?`| Type name | Override member name for T1, T2, etc. |
185
+
|`T1IsNullableReferenceType`, `T2IsNullableReferenceType`, ... |`bool`|`false`| Mark T1, T2, etc. as nullable reference type (no effect for value types). Automatically set to `true` for reference types when `TXIsStateless = true`|
186
+
|`T1IsStateless`, `T2IsStateless`, ... |`bool`|`false`| Mark T1, T2, etc. as a stateless type that carries no instance data. Reduces memory by storing only discriminator index. Accessors return `default(T)`. Automatically sets `TXIsNullableReferenceType = true` for reference types. **Recommended: Use struct types for stateless members to avoid null-handling complexity.**|
186
187
187
188
**Inherits all properties from `UnionAttributeBase`** (see above).
188
189
@@ -202,12 +203,13 @@ AdHocUnionAttribute(Type t1, Type t2, Type? t3 = null, Type? t4 = null, Type? t5
|`T1`, `T2`|`Type`| (required) | Required member types |
208
-
|`T3`, `T4`, `T5`|`Type?`|`null`| Optional member types |
209
-
|`T1Name`, `T2Name`, ..., `T5Name`|`string?`| Type name | Override member name for T1, T2, etc. |
210
-
|`T1IsNullableReferenceType`, `T2IsNullableReferenceType`, ..., `T5IsNullableReferenceType`|`bool`|`false`| Mark T1, T2, etc. as nullable reference type (no effect for value types) |
|`T1`, `T2`|`Type`| (required) | Required member types |
209
+
|`T3`, `T4`, `T5`|`Type?`|`null`| Optional member types |
210
+
|`T1Name`, `T2Name`, ..., `T5Name`|`string?`| Type name | Override member name for T1, T2, etc. |
211
+
|`T1IsNullableReferenceType`, `T2IsNullableReferenceType`, ..., `T5IsNullableReferenceType`|`bool`|`false`| Mark T1, T2, etc. as nullable reference type (no effect for value types). Automatically set to `true` for reference types when `TXIsStateless = true`|
212
+
|`T1IsStateless`, `T2IsStateless`, ..., `T5IsStateless`|`bool`|`false`| Mark T1, T2, etc. as a stateless type that carries no instance data. Reduces memory by storing only discriminator index. Accessors return `default(T)`. Automatically sets `TXIsNullableReferenceType = true` for reference types. **Recommended: Use struct types for stateless members to avoid null-handling complexity.**|
211
213
212
214
**Inherits all properties from `UnionAttributeBase`** (see above).
- Stateless types (`TXIsStateless = true`): Memory-efficient members that store only discriminator, not instance data (prefer structs to avoid null-handling)
154
155
-**Regular `[Union]`**: Inheritance-based unions with derived types
155
156
- Static factory methods, Switch/Map over all derived types
0 commit comments