C# - Calling an extension methods on null references
1923 단어 C#
public static ExtensionClass
{
public static return_type ExtensionMethod(this class_type a);
}
and we all know if we know if instance "a"is null, the call to ExtensionMethods would fail with NRE (NullReferenceException) if the ExtensionMethods is a member method. but will that fail on ExtensionMethod?
Let's make some extension methods
public static class ExtensionMethodsOnNullReferences
{
public static bool IsNull(this object x)
{
return x == null;
}
public static bool IsNullOrEmpty(this string text)
{
return string.IsNullOrEmpty(text);
}
}
Which basically check if the extended object is null or Empty String (in the case of IsNullOrEmptyeString).
Here is the test code
public static void DemoExtensionMethodsOnNullReferences()
{
object nullObj = null;
string nullString = null;
Console.WriteLine("{0} (expected True) == nullObj.IsNull()", nullObj.IsNull());
Console.WriteLine("{0} (expected True) == nullString.IsNullOrEmpty()", nullString.IsNullOrEmpty());
}
As you can see, it does not throw the NRE exception, but rather peacefully exected the code.
Design Guide. With the speciality when dealing with Null Reference regardin extension method, It is recommended to check for nullity (with the help of ExtensionMethod) and throw ArgumentNullException rather than NullReferenceException....
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.