2

我有一个“调试”类,它只是将信息打印到控制台等。从其余代码中,我希望能够调用其中的方法,但到目前为止它只是部分工作。

通话dc.Print()效果很好,但我一打电话dc.Print(dc.GetEventsLogged())就收到一条红线

“最好的重载方法匹配有一些无效的参数”以及参数 1:无法从 'int' 转换为 'string'。

基本上:为什么我对 dc.Print 的论点是错误的?另外,关于“无法从 int 转换为字符串,我能做些什么?我尝试了 .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()返回 anintPrint()期望您传入 a string。因此,您需要从intto返回,string并且您在正确的轨道上ToString()。这将完成您想要实现的目标:

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

尝试dc.Print(dc.GetEventsLogged().toString())因为GetEventsLogged()是 int 类型并Print(string Message)寻找字符串输入。

于 2013-07-18T11:02:36.377 回答
1

您的方法Print需要一个 type 的参数String。当您调用时dc.Print(dc.GetEventsLogged()),您实际上给出了一个,int因为您的方法 GetEventsLogged()返回一个int

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