为什么使用“.”运算符的ToString

本文关键字:运算符 ToString 为什么 | 更新日期: 2023-09-27 18:10:25

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

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

其中控制台是类,WriteLine 是此类的一部分。为了使一切井井有条,我试图理解它的所有概念,但有一刻他使用函数将整数转换为字符串:

myValue.ToString();

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

System.ToString(MyValue);

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

为什么使用“.”运算符的ToString

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

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

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

唯一的功能区别是Convert.ToString()处理null,而ToString()不处理,因为obj.ToString()假定obj不为空,而ToString(obj)将在null对象上返回String.Empty

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

如果你意识到你写的比调用系统方法来形成它少。