为什么ToString使用"。"操作者

时间:2015-08-29 17:10:42

标签: c# class operators

我开始了计算机编程的第二门课程,现在我有一个中级水平的C语言知识,初学者C ++,并且刚开始学习C#语言。在Bob Tabor的C#基础知识中,他使用了。作为类操作员,例如。

Console.WriteLine(myValue); Console.ReadLine();

其中Console是类,WriteLine是此类的一部分。为了保持一切有条理,我试图理解它的所有概念但是在一瞬间他通过使用函数将整数转换为字符串:

myValue.ToString();

在那一点上我迷路了。为什么他使用那种逻辑而不是简单有组织的方式,如:

System.ToString(MyValue);

他没有使用必须转换为参数的值。这没有任何逻辑意义。我错了吗?

3 个答案:

答案 0 :(得分:6)

每个对象都继承自.NET Framework中的System.Objectobject除外)。 System.Object定义了一个公开ToString()方法,因此您可以在任何对象上调用ToString()

Console.WriteLn对作为参数传递给它的对象调用ToString,以获取可以打印的字符串。

没有System.ToString()之类的东西。 System是名称空间,方法不能存在于全局范围内;它始终是一个类型的成员。在对象中,您可以直接调用成员,从外部开始,您必须使用点语法:someObject.SomeMethod();x = someObject.SomeProperty;。从类型名称SomeType.SomeMethod();调用静态成员。 Console.WriteLn();就是一个很好的例子。

答案 1 :(得分:1)

唯一的功能差异是Convert.ToString()处理null,而ToString()没有处理,因为obj.ToString()假设obj不为空,而ToString(obj)将在String.Empty对象上返回null

答案 2 :(得分:0)

每个对象都有方法和属性,你可以调用方法" ToString"将对象格式化为字符串。

如果你发现你写的不是调用系统方法来编写它。