使用不推薦的或過時的函數可能表示這是一段被忽略的代碼。
隨著編程語言的發展,一些函數有時會被棄用,原因如下:
- 為了改進該編程語言
- 對如何有效、安全地執行操作有了更深一步的
了解
- 某些操作的管理規則發生了變化
在一種編程語言中,舊函數會被新函數所替代,比起舊函數,新函數更能以我們所期望的方式執行任務。
例如:下面的代碼會構造一個新的 SqlClientPermission 對象,這個對象規定了用戶可以使用的連接到數據庫的方式。在這個例子中,程序把 false 作為第二個參數傳遞給構造函數(控制著是否允許用戶用空密碼進行連接)。如果傳遞的參數值為 false,則說明不允許使用空密碼。
...
SCP = new SqlClientPermission(pstate, false);
...
PermissionState 對象代替了任何傳遞給第二個參數的值,所以這個構造函數允許使用空密碼連接到數據庫,這與第二個條件相矛盾。要禁止使用空密碼,程序應該把 PermissionState.None 傳遞給構造函數的第一個參數。由于其功能尚不明確,因此不贊成采用 SqlClientPermission 構造函數的“雙參數”版本,而建議采用“單參數”版本(與“雙參數”版本功能相同但是避免了被誤譯的風險)。 [1] Standards Mapping - Common Weakness Enumeration - (CWE) CWE ID 477