當前位置:首頁 » 編程軟體 » color的默認值值必須為編譯時常量

color的默認值值必須為編譯時常量

發布時間: 2024-03-05 19:39:58

① 默認參數的用法

C語言中沒有參數默認值的概念,可以利用宏來模擬參數默認值;
在C++中,可以為參數指定默認值。在函數調用時沒有指定與形參相對應的實參時, 就自動使用默認參數。
默認參數的語法與使用:
(1)在函數聲明或定義時,直接對參數賦值。這就是默認參數;
(2)在函數調用時,省略部分或全部參數。這時可以用默認參數來代替。
注意:
(1)默認參數只可在函數聲明中設定一次。只有在無函數聲明時,才可以在函數定義中設定。
(2)默認參數定義的順序為自右到左。即如果一個參數設定了預設值時,其右邊的參數都要有預設值。
如:int mal(int a, int b=3, int c=6, int d=8) 正確,按從右到左順序設定默認值。
int mal(int a=6, int b=3, int c=5, int d) 錯誤,未按照從右到左設定默認值。c設定預設值了,而其右邊的d沒有預設值。
(3)默認參數調用時,則遵循參數調用順序,自左到右逐個調用。這一點要與第(2)分清楚,不要混淆。
如:void mal(int a, int b=3, int c=5); //默認參數
mal(3, 8, 9 ); //調用時有指定參數,則不使用默認參數
mal(3, 5); //調用時只指定兩個參數,按從左到右順序調用,相當於mal(3,5,5);
mal(3); //調用時只指定1個參數,按從左到右順序調用,相當於mal(3,3,5);
mal( ); //錯誤,因為a沒有默認值
mal(3, , 9) //錯誤,應按從左到右順序逐個調用(調用實參,即,實參必須是連續的)
再如: void mal(int a=8, int b=3, int c=5); //默認參數
mal( ); //正確,調用所有默認參數,相當於mal(8,3,5);
(4)默認值可以是全局變數、全局常量,甚至是一個函數。但不可以是局部變數。因為默認參數的調用是在編譯時確定的,而局部變數位置與默認值在編譯時無法確定。

② C# 函數參數默認值問題

C# 有2種不同的常量定義方式:編譯時常量(compile-time) 和運行時常量(runtime)。所謂編譯時常量,是以 const關鍵字定義,所謂編譯時是常量則以readonly關鍵字定義。

C# 規定參數的默認值必須是編譯時能確定的常量值。

這些參數的類型可以是 C# 認定的基元類型。還可以包括枚舉類型,以及能設為 null 的任何引用類型。

Color 這個枚舉類屬於運行時常量。

如果硬要寫一個帶默認值的函數,只能利用重寫的方法,例如:

privatevoidPrint(stringmessage)
{
Colorcolor=Color.White;
}

privatevoidPrint(stringmessage,Colorcolor)
{
}

【附】C# 基元類型:

sbyte / byte / short / ushort /int / uint / long / ulong / char / float / double / bool / decimal /object / string

熱點內容
反編譯游戲程序 發布:2024-11-16 02:21:56 瀏覽:453
androidapp調用app 發布:2024-11-16 02:20:15 瀏覽:668
超市管理系統sql 發布:2024-11-16 02:15:24 瀏覽:732
iphone百度雲上傳 發布:2024-11-16 01:59:04 瀏覽:419
公共場合ftp 發布:2024-11-16 01:28:20 瀏覽:227
福特悠享版有哪些配置 發布:2024-11-16 01:22:06 瀏覽:594
id加密卡 發布:2024-11-16 01:20:26 瀏覽:360
我的世界極致畫質光影什麼配置 發布:2024-11-16 01:15:13 瀏覽:495
子賬號的密碼是多少 發布:2024-11-16 01:12:41 瀏覽:819
反編譯後不能打開工程 發布:2024-11-16 01:05:29 瀏覽:774