为什么字符串[]被识别为只是一个字符串
我试图让我的XML类与我的Math类分开。我在读一个xml文件寻找什么时候开始的人,并把在一个字符串[](我想?)为什么字符串[]被识别为只是一个字符串
public static string elementStartWeek()
{
XmlDocument xmldoc = new XmlDocument();
fileExistsWeek(xmldoc);
XmlNodeList nodeStart = xmldoc.GetElementsByTagName("Start");
int count2 = 0;
string[] starttxtWeek = new string[count2];
for (int i = 0; i <= nodeStart.Count; i++)
{
starttxtWeek[count2] = nodeStart[i].InnerText;
count2++;
}
return starttxtWeek[count2];
}
我希望把数组转换成我的数学课和时间转换用于计算的十进制值。我的数学课似乎认识到这是一个字符串,而不是一个数组。
public static void startHour()
{
string weekStart = WidgetLogic.elementStartWeek();
string startTime = "";
if (1 == 1)
{
startTime = weekStart;
MessageBox.Show(weekStart);
}
}
我本来期望Math.cs中的weekStart
发生错误。为什么这不会引发错误?
我正在调用startHour()
在UI对话框DetailerReport
public DetailerReports()
{
InitializeComponent();
Math.startHour();
}
EDIT1这是XML结构
<?xml version="1.0" encoding="utf-8"?>
<Form1>
<Name Key="11/19/2014 11:26:13 AM">
<Date>11/19/2014</Date>
<JobNum></JobNum>
<RevNum></RevNum>
<Task></Task>
<Start>11:26 AM</Start>
<End>11:26 AM</End>
<TotalTime>55870781</TotalTime>
</Name>
.....
你的方法返回只是一个string
不是一个数组。这是第一个问题,第二个问题是你用0初始化数组。
public static string[] elementStartWeek()
{
XmlDocument xmldoc = new XmlDocument();
fileExistsWeek(xmldoc);
XmlNodeList nodeStart = xmldoc.GetElementsByTagName("Start");
int count2 = 0;
string[] starttxtWeek = new string[nodeStart.Count];
for (int i = 0; i < nodeStart.Count; i++)
{
starttxtWeek[i] = nodeStart[i].InnerText;
count2++;
}
return starttxtWeek;
}
也为任何其他人来改变'for( )'循环读取'(int i = 0; i
你只返回一个字符串,而不是它的一个数组。改变你的功能是这样的:
public static string[] elementStartWeek()
{
XmlDocument xmldoc = new XmlDocument();
fileExistsWeek(xmldoc);
XmlNodeList nodeStart = xmldoc.GetElementsByTagName("Start");
string[] starttxtWeek = new string[nodeStart.Count];
for (int i = 0; i < nodeStart.Count; i++)
{
starttxtWeek[i] = nodeStart[i].InnerText;
}
return starttxtWeek;
}
此外,您必须将数组容量设置为nodeStart.Count。你将不需要count2变量。
此外,我改变了contition在for循环i < nodeStart.Count
帕维尔,你仍然错过了'新字符串[count2];'逻辑...'他的代码是错误的... – 2014-11-24 15:10:35
@JohnBustos但是这是让它抛出错误的那个。我也在上周与这场战斗。我必须将'elementStartWeek()'定义为'string []'来获得智能感知。至少现在我可以继续调试。 :-D – 2014-11-24 15:12:30
@FrankPytel修复starttxtWeek的维度,string [] starttxtWeek = new string [nodeStart.Count]; – Monah 2014-11-24 15:13:55
为什么会期待一个错误?您从方法返回一个字符串并将其分配给字符串。 – 2014-11-24 15:08:17
我认为也许'弗兰克Pytel'你应该读一下'string && string []'[string](http://msdn.microsoft.com/en-us/library/362314fe.aspx)&& [字符串[]'](http://msdn.microsoft.com/en-us/library/system.string%28v=vs.110%29.aspx) – MethodMan 2014-11-24 15:13:25