![](/img/trans.png)
[英]Predefined type 'System.ValueTuple`2' is not defined or imported
[英]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.