为什么会有这样的方式转换为.net中的字符串?我看到的方法是.ToString,Convert.ToString()和(string).有什么不同.
解决方法
Convert.ToString(OBJ)
将指定的值转换为其等效的字符串表示形式.如果指定的值为null,则返回String.Empty.
obj.ToString()
返回一个表示当前对象的字符串.此方法返回一个人类可读的文本敏感字符串.例如,对于值为0的Double类的实例,Double.ToString的实现可能会返回“0.00”或“0,00”,这取决于当前的UI文化.默认实现返回Object的类型的完全限定名.
派生类中可以覆盖此方法,以返回对该类型有意义的值.例如,基本数据类型(如Int32)实现ToString,以便它返回对象所代表的值的字符串形式.需要对ToString提供的字符串格式进行更多控制的派生类必须实现IFormattable,其ToString方法使用当前线程的CurrentCulture属性.
(串)目标文件
这是一个演员操作,而不是一个函数调用.如果您确定对象的类型为字符串,或者它具有可以将其转换为字符串的隐式或显式运算符,请使用它.如果对象为null,则返回null,该类型为String或实现自定义转换为字符串运算符的类型.参见例子.
obj作为字符串
安全投掷操作.与上述相同,但是如果转换操作失败,则不会抛出异常,它将返回null.
提示:不要忘记使用CultureInfo与obj.ToString()和Convert.ToString(obj)
例:
12345.6D.ToString(CultureInfo.InvariantCulture); // returns 12345.6 12345.6D.ToString(CultureInfo.GetCultureInfo("de-DE")); // returns 12345,6 Convert.ToString(12345.6D,CultureInfo.InvariantCulture); // returns 12345.6 Convert.ToString(12345.6D,CultureInfo.GetCultureInfo("de-DE")); // 12345,6 Convert.ToString(test); // String.Empty,"test" is null and it's type // doesn't implement explicit cast to string oper. Convert.ToString(null); // null (string) null; // null (string) test; // wont't compile,"test" is not a string and // doesn't implement custom cast to string operator (string) test; // most likely NullReferenceException,// "test" is not a string,// implements custom cast operator but is null (string) test; // some value,"test" is not a string,// implements custom cast to string operator null as string; // null
以下是自定义投放运算符的示例:
public class Test { public static implicit operator string(Test v) { return "test"; } }