【问题标题】:Why ToString using "." operator为什么 ToString 使用“。”操作员
【发布时间】:2015-08-29 17:10:41
【问题描述】:

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

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

Console 是类,WriteLine 是这个类的一部分。为了让一切井井有条,我试图理解它的所有概念,但有一次他使用函数将整数转换为字符串:

myValue.ToString();

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

System.ToString(MyValue);

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

【问题讨论】:

  • 什么是System.ToString(MyValue)
  • 为什么?如果你问为什么,如果你最终学习 Java,你会玩得很开心:p 对我来说似乎很明显的原因是:不那么冗长。
  • 只是概念的想法。这正是我想输入的方式。
  • 好的。我得到了它。只是方法。谢谢大家!我学东西不好>_

标签: c# class operators


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 嘿,你会通过介绍Convert.ToString 来迷惑他:p
    • 哈哈,也许=P 但同时,这个区别其实很重要!
    • 为什么要处理 null 而不是 value 作为参数?
    • 你必须解释 System 是一个命名空间而不是一个类,所以你甚至不能在上面调用 ToString..
    【解决方案3】:

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

    如果您意识到自己编写的内容少于调用系统方法来格式化它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 2017-03-19
      • 1970-01-01
      • 2010-11-06
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多