我正在寫以下內(nèi)容:namespace Converter { public class Converter { public string dnaToRna(string dna) { string rna = ""; foreach(char letter in dna){ letter=='T' ? rna+='U' : rna+=letter; rna+=letter; } return rna; } } }當我用測試調(diào)用代碼時: namespace Converter { using NUnit.Framework; using System; [TestFixture] public class Test { [Test] public void test() { Converter converter = new Converter(); Assert.AreEqual("UUUU", converter.dnaToRna("TTTT")); } }}它說:src/Solution.cs(9,9): error CS0201: Only assignment, call, increment, decrement, and new object expressions can be used as a statement但是,如果我將其替換為:namespace Converter { public class Converter { public string dnaToRna(string dna) { string rna = ""; foreach(char letter in dna){ if(letter=='T'){ rna+='U'; }else{ rna+=letter; } } return rna; } }}它有效,為什么?感謝您的幫助??????。
3 回答

慕容森
TA貢獻1853條經(jīng)驗 獲得超18個贊
不正確:
letter=='T' ? rna+='U' : rna+=letter;
正確的:
rna+= letter=='T' ? 'U' : letter;

絕地無雙
TA貢獻1946條經(jīng)驗 獲得超4個贊
您不應(yīng)該在三元條件本身內(nèi)執(zhí)行賦值;你應(yīng)該改用它。
rna += letter=='T' ? 'U' : letter;
句法:
Boolean Expression ? First Statement : Second Statement
筆記:
三元運算符返回包含在它的第二部分或第三部分中的值或表達式。它不執(zhí)行語句。
- 3 回答
- 0 關(guān)注
- 391 瀏覽
添加回答
舉報
0/150
提交
取消