我正在写一个C#程序来抓取一个目录,并给我一个列表,其中最后一个CSV行的日期小于当前日期的文件。由于这是一个程序小组,我并没有花费太多时间让代码变得非常干净或任何东西 - 但我想这只是一个意见问题。C#没有推断通过返回类型的重载方法
好奇的是以下一组代码片段。三个静态方法都在同一个类中。
public static DateTime dateStringConverter(string mmddyyyy, char delim='/')
{
string[] date = mmddyyyy.Split(delim);
DateTime fileTime = new DateTime(Convert.ToInt32(date[2]), Convert.ToInt32(date[0]), Convert.ToInt32(date[1]));
return fileTime;
}
public static string dateStringGetter()
{
string sYear = DateTime.Now.Year.ToString();
string sMonth = DateTime.Now.Month.ToString().PadLeft(2, '0');
string sDay = DateTime.Now.Day.ToString().PadLeft(2, '0');
return sMonth + '/' + sDay + '/' + sYear;
}
public static DateTime dateStringGetter()
{
string datestring = dateStringGetter();
return dateStringConverter(datestring);
}
该错误消息表示:
Error 1 Type 'Poller.Program' already defines a member called
'dateStringGetter' with the same parameter types
的问题的方法是dateStringGetter(),的第二个重载拷贝当然具有相同的参数类型为第二个版本(无),但有两个完全不同的返回类型。一个是DateTime,另一个是字符串。带有DateTime返回类型的版本(一串错误编码)使用字符串类型调用dateStringGetter()的版本。
这不是好奇吗?那C#不会重载基于返回类型的方法吗?我想我已经完成了库的重载,它会根据通话自动检测我想要的返回类型 - 但我不确定。有些事情对此感觉不对。
所以我想C#不重载返回类型?
简单 - 你_can't_有两种方法相差仅返回类型。使用不同的名字。 –