2

情報をコンソールなどに出力するだけの「デバッグ」クラスがあります。コードの残りの部分から、その中のメソッドを呼び出せるようにしたいのですが、これまでのところ部分的にしか機能していません。

通話dc.Print()は正常に機能しますが、通話するとすぐにdc.Print(dc.GetEventsLogged())赤いメッセージとメッセージが表示されます

「最適なオーバーロードされたメソッドの一致には、いくつかの無効な引数があります」および引数 1:「int」から「string」に変換できません。

基本的に: dc.Print に対する私の引数が間違っているのはなぜですか? また、「int から string に変換できません」についてはどうすればよいですか? .ToString を試しましたが、それもうまくいきませんでした。

これは私の「Debug.cs」クラスです:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace Test
{
    public class Debug
    {
        private int events_logged;

        public Debug()
        {
            events_logged = 0;
        }

        public void Print(string Message)
        {
            Console.WriteLine("[" + DateTime.UtcNow + "] " + Message);
            events_logged++;
        }


        public int GetEventsLogged()
        {
        return events_logged;
        }
    }
}

そして、私の「Program.cs」クラスには次のものがあります。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Debug dc = new Debug();
            dc.Print("Test");
        }
    }
}
4

5 に答える 5

7

エラーが表示される理由は、が を渡すことを期待しているのに対し、 をGetEventsLogged()返すためです。したがって、 からに戻る必要があり、 で正しい軌道に乗っていました。これはあなたが達成したいことをします:intPrint()stringintstringToString()

dc.Print(dc.GetEventsLogged().ToString());
于 2013-07-18T11:00:31.977 に答える
2

dc.Print()文字列引数が必要でdc.GetEventsLogged()int. タイプが一致ToString()するようにする必要があります。int

int numberOfEventsLogged = dc.GetEventsLogged();

string numberOfEventsLoggedAsString = numberOfEventsLogged.ToString();

dc.Print(numberOfEventsLoggedAsString)
于 2013-07-18T10:59:36.317 に答える
1

は int 型であり、文字列入力を探しているためdc.Print(dc.GetEventsLogged().toString())、試してみてください。GetEventsLogged()Print(string Message)

于 2013-07-18T11:02:36.377 に答える
1

あなたのメソッドPrintは type の引数を期待していますString。を呼び出すと、メソッド が を返すためdc.Print(dc.GetEventsLogged())、実際にはが返されます。intGetEventsLogged()int

于 2013-07-18T11:03:31.453 に答える
0
    public string GetEventsLogged()
    {
        return events_logged.ToString();
    }
于 2013-07-18T11:00:39.727 に答える