Skip to content

Commit f7d6b31

Browse files
committed
Add ArgumentNullException.ThrowIfNull
1 parent 69a4f83 commit f7d6b31

File tree

7 files changed

+130
-110
lines changed

7 files changed

+130
-110
lines changed

src/libraries/System.Net.WebClient/src/System/Net/WebClient.cs

Lines changed: 31 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ public Encoding Encoding
143143
get { return _encoding; }
144144
set
145145
{
146-
ThrowIfNull(value, nameof(value));
146+
ArgumentNullException.ThrowIfNull(value, nameof(value));
147147
_encoding = value;
148148
}
149149
}
@@ -280,7 +280,7 @@ public byte[] DownloadData(string address) =>
280280

281281
public byte[] DownloadData(Uri address)
282282
{
283-
ThrowIfNull(address, nameof(address));
283+
ArgumentNullException.ThrowIfNull(address, nameof(address));
284284

285285
StartOperation();
286286
try
@@ -320,8 +320,8 @@ public void DownloadFile(string address, string fileName) =>
320320

321321
public void DownloadFile(Uri address, string fileName)
322322
{
323-
ThrowIfNull(address, nameof(address));
324-
ThrowIfNull(fileName, nameof(fileName));
323+
ArgumentNullException.ThrowIfNull(address, nameof(address));
324+
ArgumentNullException.ThrowIfNull(fileName, nameof(fileName));
325325

326326
WebRequest? request = null;
327327
FileStream? fs = null;
@@ -359,7 +359,7 @@ public Stream OpenRead(string address) =>
359359

360360
public Stream OpenRead(Uri address)
361361
{
362-
ThrowIfNull(address, nameof(address));
362+
ArgumentNullException.ThrowIfNull(address, nameof(address));
363363

364364
WebRequest? request = null;
365365
StartOperation();
@@ -392,7 +392,7 @@ public Stream OpenWrite(string address, string? method) =>
392392

393393
public Stream OpenWrite(Uri address, string? method)
394394
{
395-
ThrowIfNull(address, nameof(address));
395+
ArgumentNullException.ThrowIfNull(address, nameof(address));
396396
if (method == null)
397397
{
398398
method = MapToDefaultMethod(address);
@@ -432,8 +432,8 @@ public byte[] UploadData(string address, string? method, byte[] data) =>
432432

433433
public byte[] UploadData(Uri address, string? method, byte[] data)
434434
{
435-
ThrowIfNull(address, nameof(address));
436-
ThrowIfNull(data, nameof(data));
435+
ArgumentNullException.ThrowIfNull(address, nameof(address));
436+
ArgumentNullException.ThrowIfNull(data, nameof(data));
437437
if (method == null)
438438
{
439439
method = MapToDefaultMethod(address);
@@ -553,8 +553,8 @@ public byte[] UploadFile(string address, string? method, string fileName) =>
553553

554554
public byte[] UploadFile(Uri address, string? method, string fileName)
555555
{
556-
ThrowIfNull(address, nameof(address));
557-
ThrowIfNull(fileName, nameof(fileName));
556+
ArgumentNullException.ThrowIfNull(address, nameof(address));
557+
ArgumentNullException.ThrowIfNull(fileName, nameof(fileName));
558558
if (method == null)
559559
{
560560
method = MapToDefaultMethod(address);
@@ -626,8 +626,8 @@ public byte[] UploadValues(string address, string? method, NameValueCollection d
626626

627627
public byte[] UploadValues(Uri address, string? method, NameValueCollection data)
628628
{
629-
ThrowIfNull(address, nameof(address));
630-
ThrowIfNull(data, nameof(data));
629+
ArgumentNullException.ThrowIfNull(address, nameof(address));
630+
ArgumentNullException.ThrowIfNull(data, nameof(data));
631631
if (method == null)
632632
{
633633
method = MapToDefaultMethod(address);
@@ -665,8 +665,8 @@ public string UploadString(string address, string? method, string data) =>
665665

666666
public string UploadString(Uri address, string? method, string data)
667667
{
668-
ThrowIfNull(address, nameof(address));
669-
ThrowIfNull(data, nameof(data));
668+
ArgumentNullException.ThrowIfNull(address, nameof(address));
669+
ArgumentNullException.ThrowIfNull(data, nameof(data));
670670
if (method == null)
671671
{
672672
method = MapToDefaultMethod(address);
@@ -691,7 +691,7 @@ public string DownloadString(string address) =>
691691

692692
public string DownloadString(Uri address)
693693
{
694-
ThrowIfNull(address, nameof(address));
694+
ArgumentNullException.ThrowIfNull(address, nameof(address));
695695

696696
StartOperation();
697697
try
@@ -781,7 +781,7 @@ private void CopyHeadersTo(WebRequest request)
781781

782782
private Uri GetUri(string address)
783783
{
784-
ThrowIfNull(address, nameof(address));
784+
ArgumentNullException.ThrowIfNull(address, nameof(address));
785785

786786
Uri? uri;
787787
if (_baseAddress != null)
@@ -801,7 +801,7 @@ private Uri GetUri(string address)
801801

802802
private Uri GetUri(Uri address)
803803
{
804-
ThrowIfNull(address, nameof(address));
804+
ArgumentNullException.ThrowIfNull(address, nameof(address));
805805

806806
Uri? uri = address;
807807

@@ -1297,7 +1297,7 @@ public void OpenReadAsync(Uri address) =>
12971297

12981298
public void OpenReadAsync(Uri address, object? userToken)
12991299
{
1300-
ThrowIfNull(address, nameof(address));
1300+
ArgumentNullException.ThrowIfNull(address, nameof(address));
13011301

13021302
AsyncOperation asyncOp = StartAsyncOperation(userToken);
13031303
try
@@ -1335,7 +1335,7 @@ public void OpenWriteAsync(Uri address, string? method) =>
13351335

13361336
public void OpenWriteAsync(Uri address, string? method, object? userToken)
13371337
{
1338-
ThrowIfNull(address, nameof(address));
1338+
ArgumentNullException.ThrowIfNull(address, nameof(address));
13391339
if (method == null)
13401340
{
13411341
method = MapToDefaultMethod(address);
@@ -1396,7 +1396,7 @@ public void DownloadStringAsync(Uri address) =>
13961396

13971397
public void DownloadStringAsync(Uri address, object? userToken)
13981398
{
1399-
ThrowIfNull(address, nameof(address));
1399+
ArgumentNullException.ThrowIfNull(address, nameof(address));
14001400

14011401
AsyncOperation asyncOp = StartAsyncOperation(userToken);
14021402
try
@@ -1422,7 +1422,7 @@ public void DownloadDataAsync(Uri address) =>
14221422

14231423
public void DownloadDataAsync(Uri address, object? userToken)
14241424
{
1425-
ThrowIfNull(address, nameof(address));
1425+
ArgumentNullException.ThrowIfNull(address, nameof(address));
14261426

14271427
AsyncOperation asyncOp = StartAsyncOperation(userToken);
14281428
try
@@ -1448,8 +1448,8 @@ public void DownloadFileAsync(Uri address, string fileName) =>
14481448

14491449
public void DownloadFileAsync(Uri address, string fileName, object? userToken)
14501450
{
1451-
ThrowIfNull(address, nameof(address));
1452-
ThrowIfNull(fileName, nameof(fileName));
1451+
ArgumentNullException.ThrowIfNull(address, nameof(address));
1452+
ArgumentNullException.ThrowIfNull(fileName, nameof(fileName));
14531453

14541454
FileStream? fs = null;
14551455
AsyncOperation asyncOp = StartAsyncOperation(userToken);
@@ -1474,8 +1474,8 @@ public void UploadStringAsync(Uri address, string? method, string data) =>
14741474

14751475
public void UploadStringAsync(Uri address, string? method, string data, object? userToken)
14761476
{
1477-
ThrowIfNull(address, nameof(address));
1478-
ThrowIfNull(data, nameof(data));
1477+
ArgumentNullException.ThrowIfNull(address, nameof(address));
1478+
ArgumentNullException.ThrowIfNull(data, nameof(data));
14791479
if (method == null)
14801480
{
14811481
method = MapToDefaultMethod(address);
@@ -1525,8 +1525,8 @@ public void UploadDataAsync(Uri address, string? method, byte[] data) =>
15251525

15261526
public void UploadDataAsync(Uri address, string? method, byte[] data, object? userToken)
15271527
{
1528-
ThrowIfNull(address, nameof(address));
1529-
ThrowIfNull(data, nameof(data));
1528+
ArgumentNullException.ThrowIfNull(address, nameof(address));
1529+
ArgumentNullException.ThrowIfNull(data, nameof(data));
15301530
if (method == null)
15311531
{
15321532
method = MapToDefaultMethod(address);
@@ -1566,8 +1566,8 @@ public void UploadFileAsync(Uri address, string? method, string fileName) =>
15661566

15671567
public void UploadFileAsync(Uri address, string? method, string fileName, object? userToken)
15681568
{
1569-
ThrowIfNull(address, nameof(address));
1570-
ThrowIfNull(fileName, nameof(fileName));
1569+
ArgumentNullException.ThrowIfNull(address, nameof(address));
1570+
ArgumentNullException.ThrowIfNull(fileName, nameof(fileName));
15711571
if (method == null)
15721572
{
15731573
method = MapToDefaultMethod(address);
@@ -1605,8 +1605,8 @@ public void UploadValuesAsync(Uri address, string? method, NameValueCollection d
16051605

16061606
public void UploadValuesAsync(Uri address, string? method, NameValueCollection data, object? userToken)
16071607
{
1608-
ThrowIfNull(address, nameof(address));
1609-
ThrowIfNull(data, nameof(data));
1608+
ArgumentNullException.ThrowIfNull(address, nameof(address));
1609+
ArgumentNullException.ThrowIfNull(data, nameof(data));
16101610
if (method == null)
16111611
{
16121612
method = MapToDefaultMethod(address);
@@ -1940,14 +1940,6 @@ private void PostProgressChanged(AsyncOperation asyncOp, ProgressData progress)
19401940
}
19411941
}
19421942

1943-
private static void ThrowIfNull(object argument, string parameterName)
1944-
{
1945-
if (argument == null)
1946-
{
1947-
throw new ArgumentNullException(parameterName);
1948-
}
1949-
}
1950-
19511943
#region Supporting Types
19521944
private sealed class ProgressData
19531945
{

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
**
1111
=============================================================================*/
1212

13+
using System.Diagnostics.CodeAnalysis;
14+
using System.Runtime.CompilerServices;
1315
using System.Runtime.Serialization;
1416

1517
namespace System
@@ -50,5 +52,20 @@ public ArgumentNullException(string? paramName, string? message)
5052
protected ArgumentNullException(SerializationInfo info, StreamingContext context) : base(info, context)
5153
{
5254
}
55+
56+
/// <summary>Throws an <see cref="ArgumentNullException"/> if <paramref name="argument"/> is null.</summary>
57+
/// <param name="argument">The reference type argument to validate as non-null.</param>
58+
/// <param name="paramName">The name of the parameter with which <paramref name="argument"/> corresponds.</param>
59+
public static void ThrowIfNull([NotNull] object? argument, [CallerArgumentExpression("argument")] string? paramName = null)
60+
{
61+
if (argument is null)
62+
{
63+
Throw(paramName);
64+
}
65+
}
66+
67+
[DoesNotReturn]
68+
private static void Throw(string? paramName) =>
69+
throw new ArgumentNullException(paramName);
5370
}
5471
}

src/libraries/System.Reflection.TypeExtensions/src/System.Reflection.TypeExtensions.csproj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55
<TargetFrameworks>$(NetCoreAppCurrent)</TargetFrameworks>
66
</PropertyGroup>
77
<ItemGroup>
8-
<Compile Include="System\Reflection\Requires.cs" />
98
<Compile Include="System\Reflection\TypeExtensions.cs" />
109
</ItemGroup>
1110
<ItemGroup>
1211
<ProjectReference Include="$(CoreLibProject)" />
1312
</ItemGroup>
14-
</Project>
13+
</Project>

src/libraries/System.Reflection.TypeExtensions/src/System/Reflection/Requires.cs

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)