亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

c#中的標簽后未分配字符串

c#中的標簽后未分配字符串

C#
蝴蝶不菲 2021-12-25 16:52:55
我有一個我完全不明白的問題:在以下代碼中,使用了字符串path。路徑在標簽前面工作,但之后未分配。令我困惑的是,所有其他變量都有效!代碼:path = @"C:\incidents\jobTransfer";File.WriteAllLines(path + incident + "\\result_" + incident + ".txt", resultText.ToArray());End:;File.WriteAllLines(incident, resultText.ToArray());File.WriteAllLines(path + incident + "\\result_" + incident + ".txt", resultText.ToArray()); // issue at path in this line使用未分配的變量...我可以在標簽后重新分配變量,但隨后我總是必須編輯 2 行代碼以備更改
查看完整描述

3 回答

?
精慕HU

TA貢獻1845條經驗 獲得超8個贊

某處你有:


string path;

做了


string path = null;

它可以解決您的問題。


盡管已分配null,但該路徑并未在標簽處未分配。


但是,既然我想到了,也許你的意思是:


string path = @"C:\incidents\jobTransfer";

這樣,它從一開始就被分配并具有有效值。


看到這個小提琴:


例子

    string path;

    goto End;

AnotherLabel:

    path = @"C:\incidents\jobTransfer";

    Console.WriteLine(path);

End:;

    // issue at path in this line

    Console.WriteLine(path);

使固定

    string path = null;

    goto End;

AnotherLabel:

    path = @"C:\incidents\jobTransfer";

    Console.WriteLine(path);

End:;

    // no issue at path in this line

    Console.WriteLine(path);

建議

    string path = @"C:\incidents\jobTransfer";

    goto End;

AnotherLabel:

    Console.WriteLine(path);

End:;

    // no issue at path in this line

    Console.WriteLine(path);

建議

    // don't use labels, due to these kinds of obscurities ;-)


查看完整回答
反對 回復 2021-12-25
?
Helenr

TA貢獻1780條經驗 獲得超4個贊

問題很可能是您的標簽 - 這允許跳轉到您的“結束”標簽的代碼路徑,該標簽允許不設置“路徑”。

2個簡單的解決方案:

  • 重新分配 "path = @"C:\incidents\jobTransfer";" 在“結束”標簽之后 - 您提到的是有問題的,因為如果更改,您將有兩個地方可以編輯代碼。(不過,如果您在某種配置文件中對其進行參數化,則可以更改一次)。

  • 將標簽放在“path”的原始分配上方并使用一些條件來跳過你的“File.WriteAllLines(path + event + "\result_" + event + ".txt", resultText.ToArray());” 如果它不想要。

更好的解決方案是根本不使用標簽 - 這些通常是不受歡迎的,而您的問題是眾多原因之一;盡管如此,在每個人都因為使用 goto 而跳下喉嚨之前,有一些可以說是可以接受的使用它的理由


查看完整回答
反對 回復 2021-12-25
?
守著一只汪

TA貢獻1872條經驗 獲得超4個贊

由于您使用的是 Label - 這在 C# 中不常見,此標簽上方的范圍本質上是一個范圍,然后是另一個范圍 - 因此聲明的變量不再在范圍內,因此這就是不再分配它的原因,您需要在標簽的使用之外聲明這個變量 - 或者根本不使用標簽,因為這在 C# 中不是通常的做法


查看完整回答
反對 回復 2021-12-25
  • 3 回答
  • 0 關注
  • 203 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號