CA1500:變數名稱不應該與欄位名稱相符
型別名稱 |
VariableNamesShouldNotMatchFieldNames |
CheckId |
CA1500 |
分類 |
Microsoft.Maintainability |
中斷變更 |
當引發的參數與欄位具有相同名稱時:
當引發的區域變數與欄位具有相同名稱時:
|
原因
執行個體方法 (Instance Method) 會宣告參數或區域變數,而其名稱符合宣告型別的執行個體欄位。若要攔截違反該規則的區域變數,則必須使用偵錯資訊建置測試的組件 (Assembly),而且必須可以使用關聯的程式資料庫 (.pdb) 檔案。
規則描述
如果執行個體欄位的名稱符合參數或區域變數名稱,則在方法主體內時,會藉由使用 this (在 Visual Basic 中為 Me) 關鍵字來存取執行個體欄位。維護程式碼時,十分容易忘記這項差異,而假設參數/區域變數會參考執行個體欄位,因而導致錯誤。特別會發生在方法主體過於冗長時。
如何修正違規
若要修正此規則的違規情形,請重新命名參數/變數或欄位。
隱藏警告的時機
請勿隱藏此規則的警告。
範例
下列範例會顯示規則的兩個違規情形。
Imports System
Namespace MaintainabilityLibrary
Class MatchingNames
Dim someField As Integer
Sub SomeMethodOne(someField As Integer)
End Sub
Sub SomeMethodTwo()
Dim someField As Integer
End Sub
End Class
End Namespace
using System;
namespace MaintainabilityLibrary
{
class MatchingNames
{
int someField;
void SomeMethodOne(int someField) {}
void SomeMethodTwo()
{
int someField;
}
}
}