Skip to content

Commit 4df2aae

Browse files
authored
better perf by avoiding redundant casts (#4018)
* better perf by avoiding cast duplication * Update SqlParameter.cs
1 parent 85b22b6 commit 4df2aae

File tree

6 files changed

+26
-31
lines changed

6 files changed

+26
-31
lines changed

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlBulkCopy.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1757,9 +1757,9 @@ private object ConvertValue(object value, _SqlMetaData metadata, bool isNull, re
17571757
case TdsEnums.SQLJSON:
17581758
// Could be either string, SqlCachedBuffer, XmlReader or XmlDataFeed
17591759
Debug.Assert((value is XmlReader) || (value is SqlCachedBuffer) || (value is string) || (value is SqlString) || (value is XmlDataFeed), "Invalid value type of Xml datatype");
1760-
if (value is XmlReader)
1760+
if (value is XmlReader xmlReader)
17611761
{
1762-
value = new XmlDataFeed((XmlReader)value);
1762+
value = new XmlDataFeed(xmlReader);
17631763
typeChanged = true;
17641764
coercedToDataFeed = true;
17651765
}

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlCommand.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2273,7 +2273,7 @@ and not SqlDbType.Udt
22732273
s = val as string;
22742274
if (s is null)
22752275
{
2276-
SqlString sval = val is SqlString ? (SqlString)val : SqlString.Null;
2276+
SqlString sval = val is SqlString sqlVal ? sqlVal : SqlString.Null;
22772277
if (!sval.IsNull)
22782278
{
22792279
s = sval.Value;

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlConnectionStringBuilder.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -732,13 +732,9 @@ public override object ConvertTo(ITypeDescriptorContext context, CultureInfo cul
732732
{
733733
throw ADP.ArgumentNull(nameof(destinationType));
734734
}
735-
if (typeof(InstanceDescriptor) == destinationType)
735+
if (destinationType == typeof(InstanceDescriptor) && value is SqlConnectionStringBuilder obj)
736736
{
737-
SqlConnectionStringBuilder obj = (value as SqlConnectionStringBuilder);
738-
if (obj is not null)
739-
{
740-
return ConvertToInstanceDescriptor(obj);
741-
}
737+
return ConvertToInstanceDescriptor(obj);
742738
}
743739
return base.ConvertTo(context, culture, value, destinationType);
744740
}

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlParameter.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,9 @@ public override object ConvertTo(ITypeDescriptorContext context, CultureInfo cul
9595
{
9696
throw ADP.ArgumentNull(nameof(destinationType));
9797
}
98-
if ((typeof(InstanceDescriptor) == destinationType) && (value is SqlParameter))
98+
if (destinationType == typeof(InstanceDescriptor) && value is SqlParameter parameter)
9999
{
100-
return ConvertToInstanceDescriptor(value as SqlParameter);
100+
return ConvertToInstanceDescriptor(parameter);
101101
}
102102
return base.ConvertTo(context, culture, value, destinationType);
103103
}
@@ -1951,9 +1951,9 @@ private MetaType GetMetaTypeOnly()
19511951
_value = _value.ToString();
19521952
valueType = typeof(string);
19531953
}
1954-
else if (valueType == typeof(char[]))
1954+
else if (_value is char[] chars)
19551955
{
1956-
_value = new string((char[])_value);
1956+
_value = new string(chars);
19571957
valueType = typeof(string);
19581958
}
19591959
return MetaType.GetMetaTypeFromType(valueType);

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/SqlUtil.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1931,9 +1931,8 @@ internal static Exception GetExceptionArray(string serverName, string errorMessa
19311931
Exception exceptionToInclude = e.InnerException != null ? e.InnerException : e;
19321932
sqlErs.Add(new SqlError(infoNumber: 0, errorState: (byte)0x00, errorClass: (byte)TdsEnums.MIN_ERROR_CLASS, server: serverName, errorMessage: errorMessage, procedure: null, lineNumber: 0));
19331933

1934-
if (e is SqlException)
1934+
if (e is SqlException exThrown)
19351935
{
1936-
SqlException exThrown = (SqlException)e;
19371936
SqlErrorCollection errorList = exThrown.Errors;
19381937
for (int i = 0; i < exThrown.Errors.Count; i++)
19391938
{

src/Microsoft.Data.SqlClient/src/Microsoft/Data/SqlClient/TdsParser.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10665,9 +10665,9 @@ private Task TDSExecuteRPCAddParameter(TdsParserStateObject stateObj, SqlParamet
1066510665

1066610666
if (isSqlVal)
1066710667
{
10668-
if (value is SqlString)
10668+
if (value is SqlString sqlString)
1066910669
{
10670-
s = ((SqlString)value).Value;
10670+
s = sqlString.Value;
1067110671
}
1067210672
else
1067310673
{
@@ -11995,9 +11995,9 @@ internal Task WriteBulkCopyValue(object value, SqlMetaDataPriv metadata, TdsPars
1199511995
break;
1199611996
case TdsEnums.SQLXMLTYPE:
1199711997
// Value here could be string or XmlReader
11998-
if (value is XmlReader)
11998+
if (value is XmlReader xmlReader)
1199911999
{
12000-
value = MetaType.GetStringFromXml((XmlReader)value);
12000+
value = MetaType.GetStringFromXml(xmlReader);
1200112001
}
1200212002
ccb = ((isSqlType) ? ((SqlString)value).Value.Length : ((string)value).Length) * 2;
1200312003
break;
@@ -12469,9 +12469,9 @@ private Task WriteUnterminatedSqlValue(object value, MetaType type, int actualLe
1246912469
WriteInt(actualLength, stateObj); // chunk length
1247012470
}
1247112471

12472-
if (value is SqlBinary)
12472+
if (value is SqlBinary sqlBinary)
1247312473
{
12474-
return stateObj.WriteByteArray(((SqlBinary)value).Value, actualLength, offset, canAccumulate: false);
12474+
return stateObj.WriteByteArray(sqlBinary.Value, actualLength, offset, canAccumulate: false);
1247512475
}
1247612476
else
1247712477
{
@@ -12538,9 +12538,9 @@ private Task WriteUnterminatedSqlValue(object value, MetaType type, int actualLe
1253812538
{
1253912539
WriteInt(codePageByteSize, stateObj); // chunk length
1254012540
}
12541-
if (value is SqlChars)
12541+
if (value is SqlChars sqlCharsEnc)
1254212542
{
12543-
string sch = new string(((SqlChars)value).Value);
12543+
string sch = new string(sqlCharsEnc.Value);
1254412544

1254512545
return WriteEncodingChar(sch, actualLength, offset, _defaultEncoding, stateObj, canAccumulate: false);
1254612546
}
@@ -12584,9 +12584,9 @@ private Task WriteUnterminatedSqlValue(object value, MetaType type, int actualLe
1258412584
actualLength >>= 1;
1258512585
}
1258612586

12587-
if (value is SqlChars)
12587+
if (value is SqlChars sqlCharsArr)
1258812588
{
12589-
return WriteCharArray(((SqlChars)value).Value, actualLength, offset, stateObj, canAccumulate: false);
12589+
return WriteCharArray(sqlCharsArr.Value, actualLength, offset, stateObj, canAccumulate: false);
1259012590
}
1259112591
else
1259212592
{
@@ -13634,9 +13634,9 @@ private byte[] SerializeUnencryptedSqlValue(object value, MetaType type, int act
1363413634
{
1363513635
byte[] b = new byte[actualLength];
1363613636

13637-
if (value is SqlBinary)
13637+
if (value is SqlBinary sqlBin)
1363813638
{
13639-
Buffer.BlockCopy(((SqlBinary)value).Value, offset, b, 0, actualLength);
13639+
Buffer.BlockCopy(sqlBin.Value, offset, b, 0, actualLength);
1364013640
}
1364113641
else
1364213642
{
@@ -13687,9 +13687,9 @@ private byte[] SerializeUnencryptedSqlValue(object value, MetaType type, int act
1368713687
case TdsEnums.SQLBIGCHAR:
1368813688
case TdsEnums.SQLBIGVARCHAR:
1368913689
case TdsEnums.SQLTEXT:
13690-
if (value is SqlChars)
13690+
if (value is SqlChars sqlChSer)
1369113691
{
13692-
String sch = new String(((SqlChars)value).Value);
13692+
String sch = new String(sqlChSer.Value);
1369313693
return SerializeEncodingChar(sch, actualLength, offset, _defaultEncoding);
1369413694
}
1369513695
else
@@ -13710,9 +13710,9 @@ private byte[] SerializeUnencryptedSqlValue(object value, MetaType type, int act
1371013710
actualLength >>= 1;
1371113711
}
1371213712

13713-
if (value is SqlChars)
13713+
if (value is SqlChars sqlChArr)
1371413714
{
13715-
return SerializeCharArray(((SqlChars)value).Value, actualLength, offset);
13715+
return SerializeCharArray(sqlChArr.Value, actualLength, offset);
1371613716
}
1371713717
else
1371813718
{

0 commit comments

Comments
 (0)