簡體   English   中英

C# 字符串數組返回錯誤值

[英]C# String Array Returns Wrong Values

當我運行我的程序時,我從字符串數組中得到錯誤的值,我不知道為什么會發生這種情況......

我的代碼:

BackGroundWorker bgw = new BackGroundWorker();
Form1_Load(object sender, EventArgs e)
{
    bgw.DoWork += delegate {
        Open();
    }
    bgw.RunWorkerAsync();
}
private void Open()
{
    string line = "put --------------------,true,10,0";

    var lineContent = line.Split(' ');
    var syx = lineContent[0];
    var cont = lineContent[1];
    var contents = cont.Split(',');

    if (syx == "put")
    {
        if (contents.Length == 4) // In Debug This Is True
        {
            // Debugger : contents[0] = "-------------------"
            //                    [1] = "true"
            //                    [2] = "10"
            //                    [3] = "0"
            string m = contents[0]; // m = " "
            string r = contents[1]; // r = "true"
            string s = contents[2]; // s = "1"
            string rnd = contents[3]; // rnd = "0"
        }
    }
}

如您所見,我的contents數組具有正確的值,但是當我嘗試從數組中獲取值時,它給出了錯誤或不完整的值調試器 我的代碼錯了嗎? 或者是其他東西 ?

檢查這個:

string[] lineContent = new string[] { };
string syx = "";
string cont = "";
string[] contents = new string[] { };
string er = "";

string line = "put --------------------,true,10,10";
lineContent = line.Split(' ');
syx = lineContent[0];
cont = lineContent[1];
contents = cont.Split(',');

if (syx == "put")
{
  if (contents.Length == 4) // In Debug This Is True
  {
    // Debugger : contents[0] = "-------------------"
    //                    [1] = "true"
    //                    [2] = "10"
    //                    [3] = "10"
    string m = contents[0]; // m = " "
    string r = contents[1]; // r = "true"
    string s = contents[2]; // s = "1"
    string rnd = contents[3]; // rnd = "0"
  }

}

通過使用不同的變量名稱修復......不知道為什么,但這樣我的問題就解決了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM