【问题标题】:C# comparing private static and public static methodC#比较私有静态和公共静态方法
【发布时间】:2011-05-23 06:55:02
【问题描述】:

在C#中,标记为public static的方法和标记为private static的方法有什么区别?

它们是如何分配和访问的?

【问题讨论】:

  • -1 表示没有先看 C# 教程或搜索 google。有数百个示例说明如何使用不同的访问级别(公共、受保护、内部、私有)。

标签: c#


【解决方案1】:

私有静态方法只能在定义它的类内访问。公共静态方法可以在类外访问。

public class MyClass
{ 
    private static void MyPrivateMethod()
    {
        // do stuff
    }

    public static void MyPublicMethod()
    {
        // do stuff
    }
}

public class SomeOtherClass
{
    static void main(string[] args)
    {
         MyClass.MyPrivateMethod(); // invalid - this method is not visible

         MyClass.MyPublicMethod(); // valid - this method is public, thus visible
    }
}

就内存分配而言,请参见此处:

Where are methods stored in memory?

【讨论】:

  • 它们在内存中是如何分配的?
【解决方案2】:

私有静态方法只能被该类中的其他方法访问。 公共静态方法的访问几乎是全局的。

【讨论】:

  • 不完全是,非静态方法可以访问静态方法。
  • 为什么要使用其他静态方法?私有静态方法可以从同一个类的每个方法中访问。
【解决方案3】:

静态方法应用于类级别,即不需要对象来访问它们。公共方法和私有方法之间的唯一区别是可访问性。

  • 私有方法仅对该类中的其他方法可见。
  • 公共方法对任何其他类都是可见的。

    静态方法可以通过静态和非静态方法访问。
  • 【讨论】:

    • 它们在内存中是如何分配的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-17
    • 1970-01-01
    • 2012-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多