【发布时间】:2011-12-16 03:17:03
【问题描述】:
为什么你可以做这样的事情
int i = 10;
i.ToString();
'c'.Equals('d');
1.ToString();
true.GetType();
在 C# 中?那里的那些东西要么是原始的、文字的、未装箱的,要么是这些东西的任何组合;那么为什么他们有方法呢? 它们不是对象,因此不应该有方法。这个语法糖是别的东西吗?如果是这样,是什么?我可以理解具有执行这些操作的函数,例如:
string ToString(int number)
{
// Do mad code
return newString;
}
但在这种情况下,您会将其称为函数,而不是方法:
string ranch = ToString(1);
这是怎么回事?
编辑:
刚刚意识到 C# 不再是 java 克隆,而且规则完全不同。哎呀:P
【问题讨论】:
-
你的意思是“为什么structures 有方法”?这是因为他们只是这样做。 (谢天谢地!,曾经使用过 Java类型”。
-
当然是对象!值类型是从 System.Object 继承的对象,并且根据“继承”的定义,具有其基类的所有方法。为什么你认为值类型不是对象?