2013-11-23 138 views
0

我想要做什麼:創建一個函數,接受字符串和單個字符輸入。 然後該函數將根據輸入字符將每個字符「翻轉」到較低的 或大寫字符。鬥爭與裁判字符串輸入型 - 只讀 - 需要寫

我的問題:我想用一個REF字符串輸入要做到這一點,因此字符串被 的功能改變,直接而不需要創建功能的新的字符串。

下面是簡化的代碼:

static void Flip(ref string input) 
    { 

     input[0] = 'a'; 

    } 

問題:錯誤消息 - >屬性不能被分配到,它是隻讀的。

我的問題 - 我該如何改變?

我可以做的是:輸入=「無論」,但如果我想通過不同的 字符串與輸入[我]並改變這些,這是不可能的!

由於我是新來的「裁判」主題 - 這是爲什麼,以及如何解決它?

謝謝!

+0

你是如何引用翻轉功能的?它是'Flip(yourInputString)'或'Flip(ref yourInputString)'? – har07

回答

2

字符串是immutable這就是爲什麼它的indexer is read only只能讀取而不能寫入。

字符串索引器 - public char this [int index] {get; }

相反,你應該使用StringBuilder這是mutable因此它的索引不是隻讀並且可以在地方的編輯在做對象。

stringBuilder的索引器 - public char this [int index] {get;組; }

static void Flip(ref StringBuilder input) 
{ 
    input[0] = 'a'; 
} 

參閱此差異String vs StringBuilder

相關問題