Ich habe die unten gezeigte Methode, die eine CA1822 Code Analysis Warnung generiert. CA1822 sagt dies:C# -Code-Analyse CA1822 Warnung - Warum?
"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."
Kann mir jemand sagen, warum ich diese Warnung bin immer, da die ‚Leser‘ Parameter sind in der Tat verwendet?
private void ProcessFile(StreamReader reader)
{
string[] lines;
lines = reader.ReadToEnd().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
ParseFile.IVAFile(lines);
}
Warum sollte * die Methode als statisch markiert werden? Was ist der Vorteil? –
Ahh, wegen der Leistung. Von MSDN: "Nachdem Sie die Methoden als statisch markiert haben, sendet der Compiler nicht virtuelle Aufrufwebsites an diese Member. Das Ausgeben nicht virtueller Aufrufwebsites verhindert eine Überprüfung zur Laufzeit für jeden Aufruf, der sicherstellt, dass der aktuelle Objektzeiger nicht null ist kann einen messbaren Leistungszuwachs für leistungsabhängigen Code erzielen. In einigen Fällen stellt der Fehler beim Zugriff auf die aktuelle Objektinstanz ein Korrektheitsproblem dar. " –