này làm phiền tôi rất nhiều và tôi thấy tôi viết lỗi ngớ ngẩn khi kết hợp với Intellisense (VS 2008 Pro):Làm thế nào để vô hiệu hóa ngầm "này" trong C#?
class Foo
{
public Foo(bool isAction)
{
this.IsAction = IsAction;
}
public bool IsAction { get; private set; }
}
Bạn có bắt nó? Tôi chắc chắn không cho đến khi IsAction không bao giờ thay đổi, gây ra lỗi.
Intellisense bằng cách nào đó chuyển đổi "isA<tab>
" thành "IsAction" đối với tôi có nghĩa là tài sản Foo.IsAction
là luôn giả không phụ thuộc vào đầu vào constructor. Chỉ rực rỡ thôi.
Tôi phải nói rằng tôi đặc biệt ghét "ngụ ý this
" (Tôi không biết nếu có tên chính thức) và tôi muốn tắt nó đi để nó không bao giờ giả định nó. Có cách nào để thực hiện việc này không? Điều này cũng áp dụng trong việc gọi các phương thức tĩnh của cùng một lớp.
Ngoài ra, quy ước đặt tên nào tránh được vấn đề nhỏ này? Thuộc tính phải giữ nguyên "IsAction" do đó nó phải là một quy ước về tên tham số hàm tạo. Thật kỳ lạ, nếu tôi đặt tên cho nó với chính tả khớp chính xác thì this.IsAction = IsAction;
sẽ hoạt động chính xác.
Sự cố không phải là ngôn ngữ nhạy cảm với chữ hoa, mà là nhân chứng của this
. Bây giờ tôi nghĩ về nó, điều này cũng nhiều hơn một câu hỏi VS 2008 Pro hơn một C#. Tôi có thể sống với mã đã được viết mà không this
nhưng tôi không muốn viết mã mới mà không có nó có nghĩa là nói Trong
câu trả lời Noldorin của tôi đã suy nghĩ.
Bây giờ tôi nghĩ về nó, điều này cũng nhiều hơn một câu hỏi VS 2008 so với C#. Tôi có thể sống với mã đã được viết mà không có this
(mặc dù tôi thay đổi nó nếu tôi đang ở đó mucking xung quanh) nhưng tôi không muốn viết mã mới mà không có nó có nghĩa là nói với Intellisense ngừng làm việc đó. Tôi có thể yêu cầu Intellisense loại bỏ nó không?
Đây không phải là vấn đề của nhân chứng này. Thậm chí nếu bạn có thể tắt nó đi (tôi nghĩ bạn không thể), tôi chắc chắn bạn sẽ bật lại sau vài phút. –
Tôi khá chắc chắn tôi sẽ không. Tôi đã đề cập đến tôi * ghét * nó? :) –
Tôi rất thích nhìn thấy mã của bạn mà không có nó, mọi cuộc gọi đến một phương pháp riêng tư hoặc được bảo vệ trước bởi "này" ... Các lớp học tốt chứa nhiều phương pháp tái cấu trúc và biểu cảm nhỏ để đạt được mục tiêu của họ. Bạn sẽ được lấp đầy với "điều này" trên khắp nơi. –