Tôi thấy các câu hỏi tương tự như thế này liên quan đến tên tham số khớp với các thuộc tính trên lớp, nhưng tôi không thể tìm thấy bất cứ điều gì liên quan đến việc sử dụng tên tham số giống với tên loại tham số ngoại trừ vỏ trong C #. Nó dường như không phải là một vi phạm mà tôi có thể tìm thấy, nhưng nó có bị coi là hành vi xấu không? Ví dụ, tôi có phương pháp sau
public Range PadRange(Range range) {}
Phương pháp này lấy một phạm vi và trả về một phạm vi mới đã áp dụng một số phần đệm. Vì vậy, với bối cảnh chung, tôi không thể nghĩ ra một tên mô tả nào hơn cho tham số. Tuy nhiên, tôi nhớ về một mẹo tôi đã chọn khi đọc Code Complete về "khoảng cách tâm lý". Nó nói rằng
Khoảng cách tâm lý có thể được định nghĩa là sự dễ dàng trong đó hai mục có thể được phân biệt ... Khi bạn gỡ lỗi, hãy sẵn sàng cho các vấn đề gây ra bởi khoảng cách tâm lý không đủ giữa các tên biến tương tự và giữa các tên thường trình tương tự. Khi bạn xây dựng mã, chọn tên có sự khác biệt lớn để bạn có thể tránh được vấn đề.
Chữ ký phương thức của tôi có rất nhiều "Phạm vi" đang diễn ra, vì vậy cảm giác như đó có thể là một vấn đề liên quan đến khoảng cách tâm lý này. Bây giờ, tôi thấy nhiều nhà phát triển làm như sau
public Range PadRange(Range myRange) {}
Cá nhân tôi có một sự chán ghét mạnh mẽ cho hội nghị này. Thêm tiền tố "của tôi" vào tên biến không cung cấp thêm ngữ cảnh.
Tôi cũng thấy như sau
public Range PadRange(Range rangeToPad) {}
Tôi thích điều này tốt hơn tiền tố "của tôi", nhưng vẫn không quan tâm đến nó. Nó chỉ cảm thấy quá dài dòng đối với tôi, và đọc lúng túng như một tên biến. Đối với tôi, nó hiểu rằng phạm vi sẽ được đệm vì tên phương thức.
Vì vậy, với tất cả điều này được đặt ra, ruột của tôi là đi với chữ ký đầu tiên. Đối với tôi, nó sạch sẽ. Không cần phải ép buộc bối cảnh khi không cần thiết. Nhưng tôi đang làm cho chính mình hoặc các nhà phát triển trong tương lai một sự bất đồng với quy ước này? Tôi có vi phạm một thực hành tốt nhất?
Range r
(ít nhất là cho một cơ thể phương pháp ngắn) và Range toPad
.
Range range
thì tốt thôi.