我有一个“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");
}
}
}
答案 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();
}