[英]Can't seem to change length of string[]
我在C#中有一個數組:
string[] foo = new string[11];
foo數組的長度為10,我只將其更改為11,因為我需要一個附加值。 我唯一的問題是:我似乎無法更改數組的長度。 如果像上面的示例一樣將其更改為11,則設置一個斷點並進行調試,在編譯器通過此行之后,它的長度仍為10。
現在,當我在編譯器通過此行之后添加手表foo = new string[11]
,將擦除所有值並將長度更改為11。基本上我不知道發生了什么,尤其是為什么添加手表具有影響變量的運行時值。
有人知道這里發生了什么嗎?
public string[] getValues()
{
//Why does this only have 10 dimensions after initialization?????
string[] values = new string[11];
string[] temp = ddlProjectnumber.Text.Split('-'); //<----- here I set break point.
values[0] = temp[0].Trim();
values[1] = tbTask.Text;
values[2] = ddlSubstitute.Text;
values[3] = ddlCategory.Text;
values[4] = ddlSubcategory.Text;
values[5] = cbFinished.Checked.ToString();
if (propertychanged)
{
values[6] = DateTime.Now.ToString();
}
values[7] = cbJourney.Checked.ToString();
return values;
}
如果創建一個用於保存值的類,則代碼將更易於維護:
public class MyClass
{
public string ProjectNumber { get; set; }
public string Task { get; set; }
public string Substitute { get; set; }
public string Category { get; set; }
public string Subcategory { get; set; }
public bool Finished { get; set; }
public DateTime? PropChangedDate { get; set; }
public bool Journey { get; set; }
}
然后調整您的方法以僅填充類的實例,然后返回該實例:
public MyClass GetValues()
{
var myClass = new MyClass
{
ProjectNumber = ddlProjectnumber.Text.Split('-').First().Trim(),
Task = tbTask.Text,
Substitute = ddlSubstitute.Text,
Category = ddlCategory.Text,
Subcategory = ddlSubcategory.Text,
Finished = cbFinished.Checked,
Journey = cbJourney.Checked
};
if (propertychanged)
myClass.PropChangedDate = DateTime.Now;
return myClass;
}
現在,您不必猜測哪些值存儲在數組的每個元素中。
好吧,我試了一下,將配置從調試更改為發布,然后再次調試后,它顯然已經修復了。 我猜這確實是舊代碼,但是由於某些原因,在清理並重建解決方案后,它無法正確重新編譯。 無論如何,現在它可以工作了:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.