這看起來很愚蠢 - 一定是我!嵌套的條件運算符?
說我有一個字符串filter["size]" = "g1g"
這其實讀「大」,「1」,「GB」
所以
我做了一個測試,看看是否「第一」字符是一個字符,而工作出更大的 我已經做了一個測試,看看「最後」字符是否是一個字符,並計算出它的gb或mb,或者其他任何值都是布爾值。
然後我設置x(cos我越來越寬鬆)到過濾器[「大小」]這是一個字符串的長度。
但是,我來複制中間的最終號碼。
Int64.Parse(filter["size"].Substring(first?1:0,last?(first?x-2:x-1):x));
而且它不象嵌套的內嵌IFS ..
Substring(first?1:0,last?(first?x-2:x-1));
抱怨說,它缺少的:,這是對的,但頃刻間你加它,它抱怨
Error 1 The best overloaded method match for 'string.Substring(int, int)' has some invalid arguments
林開始認爲我應該用regexpr解析它,但現在我好奇爲什麼這不起作用。
所以,不相關的可能有很多更好的方法,誰能告訴我爲什麼這些嵌套的內聯ifs不工作?
它們不是「嵌套內聯ifs」 - 它們是條件運算符。如果你包含一些空格,那麼閱讀你的代碼也會更容易...現在,至於實際問題 - 請顯示一個簡短但完整的程序來說明問題。特別是,你沒有告訴我們'x'的類型。 –
嵌套的三元運算符是一個邪惡的,難以理解的混亂。如果您開始考慮使用它們,那麼將代碼分解爲if語句和多行。你爲了清晰而不是極端簡潔得分。 – Quentin
你注意到(正確)你已經錯過了':',但是你沒有解釋*你添加了什麼。例如,如果添加':null',那麼你會得到你描述的錯誤。發佈剩餘的代碼! –