【问题标题】:ASP.net c# publicly accessible functions in namespaceASP.net c# 命名空间中可公开访问的函数
【发布时间】:2011-04-04 17:45:51
【问题描述】:

在我的命名空间中,我可以拥有可供我命名空间中的所有其他页面访问的公共类。我该如何进行公共职能?我必须创建一个包含函数的类吗?还是有更简单的方法?

【问题讨论】:

    标签: c# asp.net namespaces public


    【解决方案1】:

    在使用 C# 时,函数只能存在于类型(类和结构)中。你不能单独声明一个函数。

    【讨论】:

      【解决方案2】:

      函数(方法)“活”在类型中,因此您需要将它们放在类或结构中。默认情况下它们是私有的,因此您需要指定 public 访问修饰符才能访问它们:

      namespace myNameSpace
      {
        public class myClass
        {
          public void MyMethod()
          {
          }
        }
      }
      

      请参阅 C# 编程指南的 MSDN - Methods 部分。

      【讨论】:

      • 谢谢,在我接受之前,您能否告诉我在使用 myClass 中的方法时是否需要创建它的实例,或者我可以直接引用它吗?我需要做 protected myobj = new myClass; myobj.myMethod() 或者我可以只使用 myclass.myMethod() 吗?
      • @Tom Gullen - 这取决于你如何声明你的方法。大多数方法都要求您先实例化该类,然后才能使用它。如果您将它们创建为静态的,那么它们就是不需要实例但与类型相关联的“类方法”——在这样做之前要仔细考虑,因为这样做会产生启动成本。
      【解决方案3】:

      在 C# 中,所有函数(在 C# 术语中实际上称为 方法)都将在 type(类或结构)中声明。

      但是,C# 中存在静态类的概念,它有利于替代旧编程语言中的“全局函数”:

      public static class MyUtilityFunctions
      {
          public static void PrintHello()
          {
              Console.WriteLine("Hello World!");
          }
      }
      

      现在您可以在程序中的任何位置编写:

      MyUtilityFunctions.PrintHello();
      

      静态方法是不需要对象的方法。静态类是只包含静态方法(以及静态字段、静态属性等)的类。

      【讨论】:

      • 超级棒,正是我想要的!这被认为是不好的做法吗?或者可以用吗?
      • 使用它本身并没有错。当然,也有不好使用它的方法——例如,如果一个方法很容易成为第一个参数类型的方法,请不要将其设为静态。
      • 蒂姆维,是的,当然!对不起,我总是担心我应该接受谁的答案,我做了另一个,因为我的评论表明我会,他是第一个,如果我冒犯了任何人,对不起