我是编程的新手,并试图以各种格式进行格式化泰国文化日期的练习,这是我迄今为止对我的代码所拥有的:
public String[] FormatAsSpecified(DateTime theDate, String theCulture, String[] formats)
{
String[] dateResults = new String[formats.Length];
CultureInfo culture = CultureInfo.GetCultureInfo(theCulture);
for (int i = 0; i < formats.Length; i++)
{
String culture_formatted_date = theDate.ToString(formats[i], culture);
dateResults[i] = culture_formatted_date;
}
return dateResults;
}
这是随之而来的测试方法:
[TestMethod]
public void FormatAsSpecifiedReturnsDateLiteralsInSpecifiedFormatForAllStandardFormatStrings()
{
//Arrange
var controller = new DateController();
var theDate = new DateTime(2014, 2, 14, 9, 15, 32, 376);
String theCulture = "th-TH";
// Array of all supported standard date and time format specifiers.
String[] formats
= { "d", "D", "f", "F", "g", "G", "m", "o", "r", "s", "t", "T", "u", "U", "Y" };
//Corresponding date literals for the standard Thai regional settings
String[] expectedResults
= {"14/2/2557"
, "14 กุมภาพันธ์ 2557"
, "14 กุมภาพันธ์ 2557 9:15"
, "14 กุมภาพันธ์ 2557 9:15:32"
, "14/2/2557 9:15"
, "14/2/2557 9:15:32"
, "14 กุมภาพันธ์"
, "2014-02-14T09:15:32.3760000"
, "Fri, 14 Feb 2014 09:15:32 GMT"
, "2014-02-14T09:15:32"
, "9:15"
, "9:15:32"
, "2014-02-14 09:15:32Z"
, "วันศุกร์ที่ 14 กุมภาพันธ์ 2014 9:15:32"
, "กุมภาพันธ์ 2557"};
//Act
String[] actualResults = new String[15];
for (int i = 0; i < formats.Length; i++)
{
actualResults[i]
= controller.FormatAsSpecified(theDate, theCulture, formats[i]);
}
//Assert
CollectionAssert.AreEqual(expectedResults, actualResults);
}
我在'controller.FormatAsSpecified(theDate,theCulture,formats [i]);'的测试方法中出错了。说“参数3,无法从'字符串'转换为'字符串[]'” 我做错了什么?
答案 0 :(得分:2)
更改
controller.FormatAsSpecified(theDate, theCulture, formats[i]);
到
controller.FormatAsSpecified(theDate, theCulture, formats);
我认为您应该从
更改代码//Act
String[] actualResults = new String[15];
for (int i = 0; i < formats.Length; i++)
{
actualResults[i]
= controller.FormatAsSpecified(theDate, theCulture, formats[i]);
}
到
String[] actualResults =
controller.FormatAsSpecified(theDate, theCulture, formats);