【发布时间】:2017-05-19 01:54:34
【问题描述】:
在 C# 中为什么我可以调用
var intStr = 1.ToString();
var strStr = "1".ToString();
1 和 "1" 是常量字面量,那么为什么 object.ToString() 不会导致错误?
【问题讨论】:
-
为什么它们会导致错误?为什么它需要与完全相同类型的变量有所不同?另外,
ToString不是扩展方法,它是实例方法。 大差异。 -
@Servy 我错误地认为常量与变量不同 :) 并感谢您指出 ToString() 是一个实例方法。
-
常量不同于变量。变量是存储位置,它们的值可以改变,这就是它们被称为“变量”的原因。常量是不会改变的值,这就是它们被称为“常量”的原因。您的问题不清楚的是,为什么您认为 值存储的恒定性与 将值作为接收者调用方法是否合法相关.既然你没有告诉我们,我会假设你为什么认为我的回答是不正确的。