{0}表示第一个参数“numerator”,{1}表示传递给writeLine方法参数的第二个参数“denominator”吗?
另一个问题是为什么方法说参数#1和#2是对象?整数是原始数据类型。
我来自Java背景,因此方法描述似乎令人困惑。
using System;
struct Fraction
{
public int denominator;
public int numerator;
public void Print()
{
Console.WriteLine("{0}/{1}", numerator, denominator);
Console.ReadKey();
}
}
public class structTest
{
public static void Main()
{
Fraction f;
f.numerator = 8;
f.denominator = 6;
f.Print();
}
}
答案 0 :(得分:3)
第一个问题:是的。
第二个问题:
在C#primitives(int,double等)中,它们只是.NET定义类型的别名。这就是为什么它们不是正确的“基元”,因为它们实际上隐藏了标准类和结构。
因此int
是Int32
的别名,依此类推。更多here
答案 1 :(得分:2)
是的,您的参数的顺序是根据您的想法,因为overload of WriteLine
accepts params object[]
,这意味着一个对象实例数组,其特殊情况是项可以作为最后一个参数集传递。
WriteLine
接受带有某些重载的object
,在这种情况下,这是因为A)类型可能很好,而且大多数情况下都是这样,并且不知道 a priori < / em>,并且没有泛型重载(再次,可能只是使多种类型的东西复杂化),B)它无论如何都会在对象上调用ToString
并且所有东西都是对象 (that matter) < / sup>假定合理实施该方法。
但overloads of the WriteLine
method明确接受int
,bool
,decimal
,double
等。
答案 2 :(得分:1)
是。
{0}是一个保留位置,用于填充第一个参数的任何值,第二个参数为{1},依此类推。 列表项
在C#中,一切都是对象。一些是从结构(如int,double等)创建的,而其他许多是从类创建的。所以,如果你愿意,你实际上可以这样做:
int a = new int();
你可以这样做:
string aString = a.ToString();
答案 3 :(得分:0)
1。)是的 - 后缀的顺序总是决定你所声明的第一个元素的位置。
2.)简单来说,C#是一种面向对象的编程语言(OOP)。这意味着可以引用的所有内容本身就是一个对象,以便调用它。这个帖子中的其他答案可以进一步解释。