-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Type of issue
Other (describe below)
Description
At https://learn.microsoft.com/en-us/dotnet/api/system.valuetuple.create?view=net-9.0#system-valuetuple-create-8(-0-1-2-3-4-5-6-7), the method signature is rendered as:
public static(T1, T2, T3, T4, T5, T6, T7,(T8)) Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8);
The return type should not have parentheses around T8
:
public static(T1, T2, T3, T4, T5, T6, T7, T8) Create<T1,T2,T3,T4,T5,T6,T7,T8>(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8);
According to C# 7 §8.3.11, (T1, T2, T3, T4, T5, T6, T7, T8)
means ValueTuple<T1, T2, T3, T4, T5, T6, T7, ValueTuple<T8>>
. This is the actual return type of the eight-parameter ValueTuple.Create method. In this type, the outer structure is ValueTuple<T1, T2, T3, T4, T5, T6, T7, TRest>
, whose TRest
type parameter requires a tuple type.
(T1, T2, T3, T4, T5, T6, T7, (T8))
means ValueTuple<T1, T2, T3, T4, T5, T6, T7, ValueTuple<ValueTuple<T8>>>
. That is not what ValueTuple.Create returns.
In the following member signatures, C# is wrong, but the others are correct because they use generic type syntax rather than tuple type syntax:
dotnet-api-docs/xml/System/ValueTuple.xml
Lines 953 to 959 in 9ba1f1b
<Member MemberName="Create<T1,T2,T3,T4,T5,T6,T7,T8>"> | |
<MemberSignature Language="C#" Value="public static (T1, T2, T3, T4, T5, T6, T7, (T8)) Create<T1,T2,T3,T4,T5,T6,T7,T8> (T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8);" /> | |
<MemberSignature Language="ILAsm" Value=".method public static hidebysig valuetype System.ValueTuple`8<!!T1, !!T2, !!T3, !!T4, !!T5, !!T6, !!T7, valuetype System.ValueTuple`1<!!T8>> Create<T1, T2, T3, T4, T5, T6, T7, T8>(!!T1 item1, !!T2 item2, !!T3 item3, !!T4 item4, !!T5 item5, !!T6 item6, !!T7 item7, !!T8 item8) cil managed" /> | |
<MemberSignature Language="DocId" Value="M:System.ValueTuple.Create``8(``0,``1,``2,``3,``4,``5,``6,``7)" /> | |
<MemberSignature Language="VB.NET" Value="Public Shared Function Create(Of T1, T2, T3, T4, T5, T6, T7, T8) (item1 As T1, item2 As T2, item3 As T3, item4 As T4, item5 As T5, item6 As T6, item7 As T7, item8 As T8) As ValueTuple(Of T1, T2, T3, T4, T5, T6, T7, ValueTuple(Of T8))" /> | |
<MemberSignature Language="F#" Value="static member Create : 'T1 * 'T2 * 'T3 * 'T4 * 'T5 * 'T6 * 'T7 * 'T8 -> ValueTuple<'T1, 'T2, 'T3, 'T4, 'T5, 'T6, 'T7, ValueTuple<'T8>>" Usage="System.ValueTuple.Create (item1, item2, item3, item4, item5, item6, item7, item8)" /> | |
<MemberSignature Language="C++ CLI" Value="public:
generic <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
 static ValueTuple<T1, T2, T3, T4, T5, T6, T7, ValueTuple<T8>> Create(T1 item1, T2 item2, T3 item3, T4 item4, T5 item5, T6 item6, T7 item7, T8 item8);" /> |
Page URL
Content source URL
https://github.com/dotnet/dotnet-api-docs/blob/main/xml/System/ValueTuple.xml
Document Version Independent Id
ba9ac4e4-a738-7a26-4841-113a47f798b8
Platform Id
32cda35d-8dc0-8c5a-710e-541512f6cd40