簡體   English   中英

三元運算符|| 未定義或導入預定義類型'System.ValueTuple`3'

[英]ternary operator || Predefined type 'System.ValueTuple`3' is not defined or imported

private void Disable_Proxy_textboxes(bool v)
{
    v = !v;
    address_textbox.Enabled = v;
    port_textbox.Enabled = v;
    port_label.ForeColor = Color.FromArgb(v?(255,255,255):(100, 100, 100));
    address_label.ForeColor=v?(Color.FromArgb(255,255,255)):(Color.FromArgb(100,100,100));
}

在編碼時,我決定使用三元運算符,但現在真的很困惑為什么port_label.ForeColor = Color.FromArgb(v?(255,255,255):(100, 100, 100)); 我了解下一行非常正確,但是為什么此特定行顯示以下錯誤:

Predefined type 'System.ValueTuple`3' is not defined or imported
cannot convert from '(int, int, int)' to 'int'  

文檔只是說

first_expression和second_expression的類型必須相同,或者必須存在從一種類型到另一種類型的隱式轉換。

那么兩種數據類型在我的情況下是否不一樣? 兩種情況都與此示例不同嗎?

bool c=a?true:false;
a?(c=true):(c=false);

我不明白是什么。 還請這不是為什么此代碼不起作用的原因之一,我在這里不要求任何調試。 謝謝。

問題不在於條件運算符,雙方都是ValueTuple`3類型。 那么條件運算符? 返回一個ValueTuple`3

但是Color.FromArgb重載不會將ValueTuple`3作為參數。

對於要使用的重載,編譯器不會將ValueTuple`3分解為三個int參數。

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM