代码检查:成员可以设为 static(共享)(私有可访问性)
请考虑以下方法 打印:
public class Foo
{
public void Test()
{
Print("John");
}
private void Print(string name)
{
Console.WriteLine("Hello, {0}!", name);
}
}
Public Class Foo
Public Sub Test()
Print("John")
End Sub
Private Sub Print(name As String)
Console.WriteLine("Hello, {0}!", name)
End Sub
End Class
JetBrains Rider 表明 打印 没有实例使用,可以设为 static。 但这有什么意义呢? 实际上,在特定情况下,static 成员会带来一些性能上的小优势。
以下是 Microsoft 文档中的说明:
- 不访问实例数据或调用实例方法的成员可以标记为 static(在 Visual Basic 中为 Shared)。 将方法标记为 static 后,编译器将为这些成员发出非虚拟调用点。 发出非虚拟调用点将避免在运行时对每次调用进行检查,以确保当前对象指针非空。 这可以为性能敏感的代码实现可衡量的性能提升。 在某些情况下,无法访问当前对象实例可能会导致正确性问题。
最后修改日期: 2025年 9月 26日