Tôi có phương pháp được hiển thị bên dưới đang tạo cảnh báo Phân tích mã CA1822. CA1822 nói điều này:C# Mã phân tích CA1822 Cảnh báo - Tại sao?
"The 'this parameter (or 'Me' in Visual Basic) of 'ImportForm.ProcessFile(StreamReader)' is never used. Mark the member as static (or Shared in Visual Basic) or use 'this/Me' in the method body or at least one property accessor, if appropriate."
bất cứ ai có thể cho tôi biết tại sao tôi nhận được cảnh báo này, kể từ khi thông số 'đọc' là trong thực tế được sử dụng?
private void ProcessFile(StreamReader reader)
{
string[] lines;
lines = reader.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
ParseFile.IVAFile(lines);
}
Tại sao * nên * phương pháp được đánh dấu là tĩnh? Lợi ích là gì? –
Ahh, vì hiệu suất. Từ MSDN: "Sau khi bạn đánh dấu các phương thức là tĩnh, trình biên dịch sẽ phát ra các trang web cuộc gọi không phải là ảo. Các trang web gọi non-virtual sẽ ngăn chặn việc kiểm tra thời gian chạy cho mỗi cuộc gọi đảm bảo rằng con trỏ đối tượng hiện tại là không null. có thể đạt được hiệu suất có thể đo lường được đối với mã nhạy cảm với hiệu suất. Trong một số trường hợp, việc không truy cập vào cá thể đối tượng hiện tại thể hiện vấn đề chính xác. " –