[c#] Convert.ToString ()과 .ToString ()의 차이점

Convert.ToString()과 의 차이점은 무엇입니까 .ToString()?

온라인에서 많은 차이점을 발견했지만 가장 큰 차이점은 무엇입니까?



답변

Convert.ToString()핸들 null, 동안은 ToString()하지 않습니다.


답변

ToString()객체에 대한 호출 은 객체가 null이 아니라고 가정합니다 (객체가 인스턴스 메서드를 호출하려면 존재해야하기 때문). Convert.ToString(obj)(이 변환 클래스에 정적의 방법으로), 대신 반환 객체를 추정 할 필요가 없습니다 것은 null는 아니고, String.Empty이 경우 입니다 NULL을.


답변

null값 처리에 대한 다른 답변 외에도 Convert.ToString사용을 시도 IFormattable하고IConvertible base를 호출하기 전에 인터페이스Object.ToString .

예:

class FormattableType : IFormattable
{
    private double value = 0.42;

    public string ToString(string format, IFormatProvider formatProvider)
    {
        if (formatProvider == null)
        {
            // ... using some IOC-containers
            // ... or using CultureInfo.CurrentCulture / Thread.CurrentThread.CurrentCulture
            formatProvider = CultureInfo.InvariantCulture;
        }

        // ... doing things with format
        return value.ToString(formatProvider);
    }

    public override string ToString()
    {
        return value.ToString();
    }
}

결과:

Convert.ToString(new FormattableType()); // 0.42
new FormattableType().ToString();        // 0,42


답변

이 예제를 통해 차이점을 이해하겠습니다.

int i= 0;
MessageBox.Show(i.ToString());
MessageBox.Show(Convert.ToString(i));

우리는 정수를 변환 할 수 있습니다 i사용 i.ToString ()하거나 Convert.ToString. 그렇다면 차이점은 무엇입니까?

그들 사이의 기본적인 차이점은 Convert함수는 NULLS를 처리하지만 i.ToString ()그렇지 않다는 것입니다. NULL 참조 예외 오류가 발생합니다. 따라서 좋은 코딩 연습 convert은 항상 안전합니다.


답변

클래스를 만들고 toString원하는 작업을 수행 하도록 메서드를 재정의 할 수 있습니다.

예를 들어 “MyMail” 클래스를 만들고 toString메서드를 재정 의하여 현재 개체를 작성하는 대신 전자 메일을 보내거나 다른 작업을 수행 할 수 있습니다.

Convert.toString동등한 지정된 값을 문자열 표현으로 변환한다.


답변

object o=null;
string s;
s=o.toString();
//returns a null reference exception for string  s.

string str=convert.tostring(o);
//returns an empty string for string str and does not throw an exception.,it's 
//better to use convert.tostring() for good coding


답변

메서드는 null 처리를 제외하고 “기본적으로”동일 합니다.

Pen pen = null;
Convert.ToString(pen); // No exception thrown
pen.ToString(); // Throws NullReferenceException

MSDN에서 :
Convert.ToString 메서드

지정된 값을 해당하는 문자열 표현으로 변환합니다.

Object.ToString

현재 개체를 나타내는 문자열을 반환합니다.