Skip to content

Commit bf15c2e

Browse files
authored
Avoid unnecessary CultureInfo.CurrentCulture accesses in Enum (#38866)
* Avoid unnecessary CultureInfo.CurrentCulture accesses in Enum Enum can only be backed by primitive numerical types, and using the IConvertible interface implementations to convert to numerical types won't pay any attention to culture, so just as there's no need to pass through the supplied provider, there's no need to access CultureInfo.CurrentCulture. * Address PR feedback
1 parent 16a405e commit bf15c2e

File tree

1 file changed

+13
-13
lines changed
  • src/libraries/System.Private.CoreLib/src/System

1 file changed

+13
-13
lines changed

src/libraries/System.Private.CoreLib/src/System/Enum.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,67 +1032,67 @@ public TypeCode GetTypeCode()
10321032

10331033
bool IConvertible.ToBoolean(IFormatProvider? provider)
10341034
{
1035-
return Convert.ToBoolean(GetValue(), CultureInfo.CurrentCulture);
1035+
return Convert.ToBoolean(GetValue());
10361036
}
10371037

10381038
char IConvertible.ToChar(IFormatProvider? provider)
10391039
{
1040-
return Convert.ToChar(GetValue(), CultureInfo.CurrentCulture);
1040+
return Convert.ToChar(GetValue());
10411041
}
10421042

10431043
sbyte IConvertible.ToSByte(IFormatProvider? provider)
10441044
{
1045-
return Convert.ToSByte(GetValue(), CultureInfo.CurrentCulture);
1045+
return Convert.ToSByte(GetValue());
10461046
}
10471047

10481048
byte IConvertible.ToByte(IFormatProvider? provider)
10491049
{
1050-
return Convert.ToByte(GetValue(), CultureInfo.CurrentCulture);
1050+
return Convert.ToByte(GetValue());
10511051
}
10521052

10531053
short IConvertible.ToInt16(IFormatProvider? provider)
10541054
{
1055-
return Convert.ToInt16(GetValue(), CultureInfo.CurrentCulture);
1055+
return Convert.ToInt16(GetValue());
10561056
}
10571057

10581058
ushort IConvertible.ToUInt16(IFormatProvider? provider)
10591059
{
1060-
return Convert.ToUInt16(GetValue(), CultureInfo.CurrentCulture);
1060+
return Convert.ToUInt16(GetValue());
10611061
}
10621062

10631063
int IConvertible.ToInt32(IFormatProvider? provider)
10641064
{
1065-
return Convert.ToInt32(GetValue(), CultureInfo.CurrentCulture);
1065+
return Convert.ToInt32(GetValue());
10661066
}
10671067

10681068
uint IConvertible.ToUInt32(IFormatProvider? provider)
10691069
{
1070-
return Convert.ToUInt32(GetValue(), CultureInfo.CurrentCulture);
1070+
return Convert.ToUInt32(GetValue());
10711071
}
10721072

10731073
long IConvertible.ToInt64(IFormatProvider? provider)
10741074
{
1075-
return Convert.ToInt64(GetValue(), CultureInfo.CurrentCulture);
1075+
return Convert.ToInt64(GetValue());
10761076
}
10771077

10781078
ulong IConvertible.ToUInt64(IFormatProvider? provider)
10791079
{
1080-
return Convert.ToUInt64(GetValue(), CultureInfo.CurrentCulture);
1080+
return Convert.ToUInt64(GetValue());
10811081
}
10821082

10831083
float IConvertible.ToSingle(IFormatProvider? provider)
10841084
{
1085-
return Convert.ToSingle(GetValue(), CultureInfo.CurrentCulture);
1085+
return Convert.ToSingle(GetValue());
10861086
}
10871087

10881088
double IConvertible.ToDouble(IFormatProvider? provider)
10891089
{
1090-
return Convert.ToDouble(GetValue(), CultureInfo.CurrentCulture);
1090+
return Convert.ToDouble(GetValue());
10911091
}
10921092

10931093
decimal IConvertible.ToDecimal(IFormatProvider? provider)
10941094
{
1095-
return Convert.ToDecimal(GetValue(), CultureInfo.CurrentCulture);
1095+
return Convert.ToDecimal(GetValue());
10961096
}
10971097

10981098
DateTime IConvertible.ToDateTime(IFormatProvider? provider)

0 commit comments

Comments
 (0)