C#中的WriteLine方法

时间:2013-02-12 08:21:06

标签: c# class struct

{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();
        }
    }

4 个答案:

答案 0 :(得分:3)

第一个问题:是的。

第二个问题:

  

在C#primitives(int,double等)中,它们只是.NET定义类型的别名。这就是为什么它们不是正确的“基元”,因为它们实际上隐藏了标准类和结构。

因此intInt32的别名,依此类推。更多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明确接受intbooldecimaldouble等。

答案 2 :(得分:1)

  1. 是。

    {0}是一个保留位置,用于填充第一个参数的任何值,第二个参数为{1},依此类推。 列表项

  2. 在C#中,一切都是对象。一些是从结构(如int,double等)创建的,而其他许多是从类创建的。所以,如果你愿意,你实际上可以这样做:

     int a = new int();
    

    你可以这样做:

     string aString = a.ToString();
    

答案 3 :(得分:0)

1。)是的 - 后缀的顺序总是决定你所声明的第一个元素的位置。

2.)简单来说,C#是一种面向对象的编程语言(OOP)。这意味着可以引用的所有内容本身就是一个对象,以便调用它。这个帖子中的其他答案可以进一步解释。