0

{0} は最初の引数「分子」を表し、{1} は writeLine メソッドのパラメータに渡される 2 番目の引数「分母」を表しますか?

別の質問は、メソッドが引数 #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

3 に答える 3

3

最初の質問: はい。

2 番目の質問:

C# プリミティブ (int、double など) では、それらは単純に .NET 定義型のエイリアスです。これが、実際には標準クラスと構造体を隠しているため、適切な「プリミティブ」ではない理由です。

エイリアスintforInt32なども同様です。詳細はこちら

于 2013-02-12T08:25:46.507 に答える
2

はい、引数の順序はあなたの考えに従っています。なぜなら、そのオーバーロードがWriteLineacceptparams object[]であるためです。これは、アイテムが引数の最後のコレクションとして渡される特別なケースを持つオブジェクト インスタンスの配列を意味します。

WriteLine特定のオーバーロードで受け入れobjectます。この例では、それは A) 型が異なる可能性があり、ほとんどの場合異なるためであり、アプリオリに知られていないためです。型)、および B)ToStringとにかくオブジェクトを呼び出し、すべてのものはそのメソッドの合理的な実装を想定したオブジェクト(それが問題です)です。

ただし、、、などを明示的に受け入れるメソッドのオーバーロードがWriteLineあります。intbooldecimaldouble

于 2013-02-12T08:26:32.473 に答える
1
  1. はい。

    {0}は、最初の引数の値、2番目の引数の{1}などを入力するための予約場所です。リストアイテム

  2. C#では、すべてがオブジェクトです。構造体(int、doubleなど)から作成されるものもあれば、クラスから作成されるものもあります。したがって、必要に応じて、実際には次のようなことを行うことができます。

     int a = new int();
    

    そして、あなたはこのようなことをすることができます:

     string aString = a.ToString();
    
于 2013-02-12T08:33:44.733 に答える