静态函数的作用web:
1、因为使用静态变量,多人访问页面时,会发生混乱,那么如果使用静态函数,
当多人访问时,也会存在这样的问题吗?public static decimal Money(int i)
{
   decimal money=0;
  if(i>0)
   {
     //计算金额
   }
  return money;
}2、静态函数的作用?什么情况下,我们可以考虑用静态函数?

解决方案 »

  1.   

    关于静态函数的使用:
    (1)用于对静态字段、只读字段等的初始化。               
    (2)添加static关键字,不能添加访问修饰符,因为静态构造函数都是私有的。         
    (3)类的静态构造函数在给定应用程序域中至多执行一次:只有创建类的实例或者引用类的任何静态成员才激发静态构造函数 
    (4)静态构造函数是不可继承的,而且不能被直接调用。             
    (5)如果类中包含用来开始执行的 Main 方法,则该类的静态构造函数将在调用 Main 方法之前执行。     
        任何带有初始值设定项的静态字段,则在执行该类的静态构造函数时,先要按照文本顺序执行那些初始值设定项。   
    (6)如果没有编写静态构造函数,而这时类中包含带有初始值设定的静态字段,那么编译器会自动生成默认的静态构造函数。
    如下例
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class A
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    public static int X;
    static A()
    {
       X=B.Y+1;
    }
    }
    class B
    {
    public static int Y;
    static B()
    {
       Y=A.X+1;
    }
    [STAThread]
    static void Main(string[] args)
    {
       //
       // TODO: 在此处添加代码以启动应用程序
       //
       Console.Write(A.X);
       Console.Write(B.Y);
       Console.Read();
    }
    }
    输出的结果为12
    解释在执行Main之前 执行了B的构造函书,b的构造函数Y=A.X+1;
    又执行了A的构造函书X=B.Y+1;
    Y的初始值为0 所以先算出X=1
    在出y=2
    结果是12
      

  2.   

    刚才是静态构造函数。使用静态函数的好处:
    1.静态函数会被自动分配在一个一直使用的存储区,直到退出应用程序实例,避免了调用函数时压栈出栈,速度快很多。 
    2.关键字“static”,译成中文就是“静态的”,所以内部函数又称静态函数。但此处“static”的含义不是指存储方式,而是指对函数的作用域仅局限于本文件。 使用内部函数的好处是:不同的人编写不同的函数时,不用担心自己定义的函数,是否会与其它文件中的函数同名,因为同名也没有关系。