From d7be71ba3b6f205f9ffc3cc1e2a34b12b9a52504 Mon Sep 17 00:00:00 2001 From: Barion Date: Wed, 29 Jul 2026 18:24:56 +0200 Subject: [PATCH 1/2] Update union.md clarify Union member providers --- docs/csharp/language-reference/builtin-types/union.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/csharp/language-reference/builtin-types/union.md b/docs/csharp/language-reference/builtin-types/union.md index 760b376c8e80e..5b6d8cdd5e9c9 100644 --- a/docs/csharp/language-reference/builtin-types/union.md +++ b/docs/csharp/language-reference/builtin-types/union.md @@ -171,6 +171,9 @@ The compiler prefers `TryGetValue` over the `Value` property when implementing p ### Union member providers +> [!NOTE] +> If a `IUnionMembers` interface is used all union members must be defined on that interface + A union type can delegate its union members to a nested `IUnionMembers` interface. When this interface is present, the compiler looks for `Create` factory methods instead of constructors: :::code language="csharp" source="snippets/unions/MemberProvider.cs" id="MemberProvider"::: From d695346cb0f0fffeae6b62fc59b058beeeedd071 Mon Sep 17 00:00:00 2001 From: Barion Date: Wed, 29 Jul 2026 18:31:26 +0200 Subject: [PATCH 2/2] Update union.md --- docs/csharp/language-reference/builtin-types/union.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/csharp/language-reference/builtin-types/union.md b/docs/csharp/language-reference/builtin-types/union.md index 5b6d8cdd5e9c9..33d9288766d83 100644 --- a/docs/csharp/language-reference/builtin-types/union.md +++ b/docs/csharp/language-reference/builtin-types/union.md @@ -172,7 +172,7 @@ The compiler prefers `TryGetValue` over the `Value` property when implementing p ### Union member providers > [!NOTE] -> If a `IUnionMembers` interface is used all union members must be defined on that interface +> If an `IUnionMembers` interface is used, all union members must be defined on that interface. A union type can delegate its union members to a nested `IUnionMembers` interface. When this interface is present, the compiler looks for `Create` factory methods instead of constructors: