簡體   English   中英

嘗試調試時出現此錯誤。 “ mscorlib.dll中發生類型'System.OutOfMemoryException'的異常,但未在用戶代碼中處理”

[英]Get this error when I try to debug. “An exception of type 'System.OutOfMemoryException' occurred in mscorlib.dll but was not handled in user code”

我正在嘗試制作一個應用程序,使所有首字母都變為大寫字母,而其余的都變為小寫。

string navn = txtNavn.Text;
string delnavn1, delnavn2;

delnavn1 = navn.Substring(0, 1).ToUpper();
delnavn2 = navn.Substring(1).ToLower();
navn = delnavn1 + delnavn2;

if (navn.Contains(" "))
{

    for (int i = 0; i < navn.Length; i++)
    {
        if (navn.Substring(i, 1) == " ")
        {
            delnavn1 = navn.Substring(i, 1).ToUpper();
            delnavn2 = navn.Substring(i + 2).ToLower();
            navn += delnavn1 + delnavn2 + " ";
        }

    }

}
else
{
    delnavn1 = navn.Substring(0, 1).ToUpper();
    delnavn2 = navn.Substring(1).ToLower();
    navn = delnavn1 + delnavn2;
}


txbMelding.Text = "Du heter " + navn;

對不起,奇怪的變量名,我是挪威人,沒有足夠的時間來更改它們。

我懷疑這是當前的問題:

navn += delnavn1 + delnavn2 + " ";

您正在與navn的先前值連接 因此,如果您從“ Hello there”開始,那么當您到達第一個空間時,您將擁有:

delnavn1 = " "
delnavn2 = "There"
navn = "Hello there" + delnavn1 + delnavn2;

navn = "Hello there There"

這是一個比較簡單的方法:

char[] text = txtNavn.Text.ToCharArray();
for (int i = 0; i < text.Length; i++)
{
    char c = text[i];
    text[i] = i == 0 || text[i - 1] == ' '
        ? char.ToUpper(c)
        : char.ToLower(c);       
}
txbMelding.Text = "Du heter " + new string(text);

“替換”數組中的字母比弄亂字符串串聯和子字符串要簡單得多。

請注意,這仍然是執行標題框的一種非常粗糙的方法-您可能應該查看TextInfo.ToTitleCase以獲取更全面的對文化敏感的代碼(以及無需自己編寫的代碼!)。

暫無
暫無

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

相關問題 創建 json 文件時,mscorlib.dll 中發生了“System.OutOfMemoryException”類型的異常,但未在用戶代碼中處理 ProtoBuf-Net err msg-“ mscorlib.dll中發生類型&#39;System.OutOfMemoryException&#39;的異常,但未在用戶代碼中處理” “ mscorlib.dll中發生了&#39;System.ServiceModel.ProtocolException類型的異常,但未在用戶代碼中處理”錯誤 我不斷收到mscorlib.dll中發生的&#39;System.InvalidCastException&#39;類型的異常,但未在RetailPrice的用戶代碼中處理 LINQ搜索中的mscorlib.dll中發生了&#39;System.OutOfMemoryException&#39;類型的未處理異常 mscorlib.dll 中發生了“System.OutOfMemoryException”類型的第一次機會異常 mscorlib.dll中發生類型為&#39;System.ArgumentOutOfRangeException&#39;的異常,但未在用戶代碼中處理 mscorlib.dll中發生類型&#39;System.Data.SqlClient.SqlException&#39;的異常,但未在用戶代碼中處理 mscorlib.dll中發生類型&#39;System.Reflection.TargetInvocationException&#39;的異常,但未在用戶代碼中處理 mscorlib.dll 中出現“System.Runtime.Serialization.SerializationException”類型的異常,但未在用戶代碼中處理
 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM