C# 10 μ—μ„œ Null Check #7

C# 10μ—μ„œλŠ” λ°©λ²•μ—μ„œ null 맀개 λ³€μˆ˜λ₯Ό 더 μ‰½κ²Œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

좜처: https://youtu.be/230zlnKkl3A

string? info = null;
void SayHI(string message )
{
    Console.WriteLine(value:$"Hello {message}");
}
SayHI(info); 

string λ³€μˆ˜μ— Null 을 ν• λ‹Ήν•˜κ³  Console둜 좜λ ₯ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.
λ‹Ήμ—°νžˆ μ•„λž˜μ™€ 같이 좜λ ₯λ©λ‹ˆλ‹€.

보톡 Null 체크 λ‘œμ§μ€ μ•„λž˜μ™€ 같이 μ²˜λ¦¬ν•˜λŠ”κ²ƒμ΄ λ³΄ν†΅μž…λ‹ˆλ‹€.

void SayHI(string message )
{
    if(message  is null)
    {
        throw new ArgumentNullException(nameof(message));
    }
    Console.WriteLine(value:$"Hello {message}");
}

ν•˜μ§€λ§Œ 이와 같은 방법은 .Net c# 9.0 μ΄ν•˜μ—μ„œ 보톡 μ‚¬μš©ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

void SayHI(string message )
{
    //if(message  is null)
    //{
    //    throw new ArgumentNullException(nameof(message));
    //}
    ArgumentNullException.ThrowIfNull(message);
    Console.WriteLine(value:$"Hello {message}");
}

μ΅œμ‹  방법은 이와 κ°™μŠ΅λ‹ˆλ‹€.
Code μ€„μˆ˜λ„ 쀄고 codeλŠ” 더 κΉ”κΈˆ ν•΄μ‘ŒμŠ΅λ‹ˆλ‹€.

ArgumentNullException.ThrowIfNull(message);

λ­”κ°€ μ˜μš•μ°¨κ²Œ μ‹œμž‘ν–ˆλŠ”λ° κ°„λ‹¨ν•œ tipμ΄λΌμ„œ λ„ˆλ¬΄ 짧게 λλ‚¬λ„€μš”

13개의 μ’‹μ•„μš”

이런 팁 μ’‹μ•„μšœγ…‡γ……γ…‡/

μ €λŠ” 갠적으루 이런 μ‹μ˜ μ˜ˆμ™Έ 처리λ₯Ό ν•  λ‚΄μš©λ“€μ„ λͺ¨μ•„μ„œ

public static class Thrower
{
	public static Exception ThrowIfFailedValidation<T>(T target, Func<T, bool> validation)
	{
		if (validation(target) is false)
		{
			throw new ValidationFailedException();
		}
	}
	
	public static Exception ThrowIfNullOrWhitespace(string? text, string? message)
	{
		if (string.IsNullOrWhiteSpace(text))
		{
			throw new TextNullOrWhitespaceException(message);
		}
	}

    public static Exception ThrowForbidden(string message, int resultCode)
    {
        throw new ForbiddenException(HttpStatusCode.Forbidden, message, resultCode);
    }

    public static Exception ThrowBadRequest(string message, int resultCode)
    {
        throw new BadRequestException(HttpStatusCode.BadRequest, message, resultCode);
    }

    public static Exception Throw500Error(string message, int resultCode)
    {
        throw new InternalServerErrorException(HttpStatusCode.BadRequest, message, resultCode);
    }
	
	...
}

μš”λŸ° 걸루 λͺ¨μ•„λ‹€κ°€ μ”λ‹ˆλ‹€.
μ˜ˆμ™Έλ₯Ό 적극적으둜 μ‚¬μš©ν•˜κΈ° νŽΈλ¦¬ν•΄μ§€μ£΅. =γ…‚=~

12개의 μ’‹μ•„μš”

ν™•μ‹€νžˆ μœ μ§€λ³΄μˆ˜λ©΄μ—μ„œλ„ μ΄ν•΄ν•˜κΈ° μ‰¬μšΈκ²ƒ κ°™λ„€μš” :slight_smile:

2개의 μ’‹μ•„μš”

μ•„ ν‘œμ ˆν•΄κ°ˆκ²Œμš” γ…Ž λ§Žμ€ μ°Έμ‘° ν•˜κ² μŠ΅λ‹ˆλ‹€

5개의 μ’‹μ•„μš”

쒋은 팁인 것 κ°™μ•„ ArgumentNullException.ThrowIfNull();에 λŒ€ν•΄μ„œ 더 μ°Ύμ•„λ³΄λ˜ 쀑 μ•„λž˜μ™€ 같은 글을 λ°œκ²¬ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€λ₯Έ λΆ„λ“€μ—κ²Œλ„ μ†Œκ°œν•˜λ©΄ 쒋은 κΈ€ κ°™μ•„ 같이 μ²¨λΆ€ν•΄λ΄…λ‹ˆλ‹€!

4개의 μ’‹μ•„μš”

쒋은 팁 κ°μ‚¬ν•©λ‹ˆλ‹€. μ½”λ“œκ°€ μ’€ 더 직관적이고 μΌκ΄€μ μ΄κ²Œ λ˜μ—ˆλ„€μš” :smile:

2개의 μ’‹μ•„μš”

쒋은 κΏ€νŒλ“€μ΄ λ„ˆλ¬΄ λ§Žλ„€μš” :heart::heart:

2개의 μ’‹μ•„μš”