C#初学者问题

时间:2013-07-18 10:56:36

标签: c# .net class

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

拨打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");
        }
    }
}

5 个答案:

答案 0 :(得分:7)

您看到错误的原因是GetEventsLogged()返回int,而Print()则希望您传入string。因此,您需要从int返回string,并且您使用ToString()走在正确的轨道上。这将实现您想要实现的目标:

dc.Print(dc.GetEventsLogged().ToString());

答案 1 :(得分:2)

dc.Print()想要一个字符串参数,dc.GetEventsLogged()返回int。您需要ToString() int以便类型匹配。

int numberOfEventsLogged = dc.GetEventsLogged();

string numberOfEventsLoggedAsString = numberOfEventsLogged.ToString();

dc.Print(numberOfEventsLoggedAsString)

答案 2 :(得分:1)

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

答案 3 :(得分:1)

您的方法Print需要String类型的参数。当您致电dc.Print(dc.GetEventsLogged())时,实际上是int,因为您的方法GetEventsLogged()会返回int

答案 4 :(得分:0)

    public string GetEventsLogged()
    {
        return events_logged.ToString();
    }