C# · 12月 30, 2021

c# – 字符串转换

为什么会有这样的方式转换为.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.612345.6D.ToString(CultureInfo.GetCultureInfo(“de-DE”)); // returns 12345,6Convert.ToString(12345.6D,CultureInfo.InvariantCulture); // returns 12345.6Convert.ToString(12345.6D,CultureInfo.GetCultureInfo(“de-DE”)); // 12345,6Convert.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 operatornull as string; // null

以下是自定义投放运算符的示例:

public class Test{ public static implicit operator string(Test v) { return “test”; }}