C#

[C#]Convert.ToString()과 ToString() 차이

DevStory 2022. 1. 9.

Convert.ToString() 함수와 ToString() 함수

C#에서 특정 값을 문자열로 변환하기 위해 Convert.ToString() 함수 또는 ToString() 함수를 사용합니다.

int age = 30;

Console.WriteLine("Convert.ToString(): " + Convert.ToString(age)); 
// Convert.ToString(): 30

Console.WriteLine("ToString(): " + age.ToString());
// ToString(): 30

실행 결과는 동일하지만, 두 함수는 차이점이 존재합니다.

 

이번 포스팅에서는 Convert.ToString() 함수와 ToString() 함수의 차이점을 소개합니다.


Convert.ToString() 함수와 ToString() 함수의 차이점

두 함수는 null 처리 방식이 다릅니다. Convert.ToString() 함수는 값이 null인 경우 빈 값으로 반환하는데, ToString() 함수는 null을 처리하는 로직이 존재하지 않습니다.

 

다음과 같이 문자열 변수에 null을 할당 후 ToString() 함수를 호출하면, NullReferenceException 예외가 발생합니다.

string age = null;
Console.WriteLine("ToString(): " + age.ToString());

실행 결과

반면에 Convert.ToString() 함수는 NullReferenceException 예외가 발생하지 않습니다.

string age = null;
Console.WriteLine("Convert.ToString(): " + Convert.ToString(age));
// Convert.ToString():

Convert.ToString() 함수는 null 값을 전달한 경우 빈 값으로 반환합니다.

 

ToString() 함수는 호출하는 객체가 null이 아닐 것으로 예상하기 때문에 null 처리를 하지 않습니다. 따라서 ToString() 함수보다 Convert.ToString() 함수를 사용하는 것이 더 안전합니다.

 

만약, ToString() 함수를 사용한다면 함수를 호출하기 전에 객체가 null인지 체크해야 하는 로직을 추가해야 합니다.

 

반응형

'C#' 카테고리의 다른 글

[C#]ToString 재정의  (0) 2022.01.09
[C#]Equals 재정의  (0) 2022.01.09
[C#]checked, unchecked 키워드  (0) 2021.12.29
[C#]정적 멤버(static member), 비정적 멤버(Non-static member)  (2) 2021.12.25
[C#]const와 readonly 차이점  (1) 2021.12.25

댓글