C#类型转换obj.ToString()、Convert.ToString(obj)、(string)obj、obj as string差异

C#下有4中方式可将一个对象转换为string:

            object obj = "";
            string str;
            str = obj.ToString();
            str = Convert.ToString(obj);
            str = (string)obj;
            str = obj as string;

1. 前两种方法用于得到一个对象的string表示,如DateTime类型转string类型,一般自定义对象会重写ToString()方法;

2. 区别在于若obj=null,obj.ToString()将导致System.NullReferenceException,而Convert.ToString(obj)返回null;

3. 后两种方法要求obj的运行时类型必须是string;

4. 区别在于若obj不为string类型(如object obj = DateTime.Now),(string)obj将导致System.InvalidCastException异常,而obj as string返回null。

posted @ 2017-12-09 22:47  X2009  阅读(2100)  评论(0编辑  收藏  举报