在C#我可以分配一個號碼(最多255)直接連接到類型字節的變量:如果我這樣做在一個更復雜的聲明與一個條件運算爲什麼在使用條件運算符時需要額外的投射?
byte red = 255;
然而:
byte red = (redNode != null) ? byte.Parse(redNode.Value) : 255;
我得到一個錯誤:「CS0266不能隱式地將類型'int'轉換爲'byte'。存在明確的轉換(你是否缺少一個轉換?)」。
我需要明確地做投以字節爲255:
byte red = (redNode != null) ? byte.Parse(redNode.Value) : (byte)255;
這是爲什麼投需要?
因爲兩者如果其他人應該返回相同類型的實例 –
那裏不是從int到byte的隱式轉換,而是明確的轉換。由於某種原因,它被命名爲「顯式」 - 您需要明確地應用它:) – Evk