Welcome 微信登录

首页 / 网页编程 / ASP.NET / 利用.net的内部机制在asp.net中实现身份验证

利用.net的内部机制在asp.net中实现身份验证2011-09-02 csdn博客 zhoufoxcn在.net内部存在一些默认机制,具体说来有如下:

(1)如果类的实例字段没有赋初始值,那么它们就会被赋默认值,对于引用类 型字段的默认值为null,对于简单值类型字段(即数值类型)默认值为对应形式 的0(如sbyte、byte、short、ushort、int、uint、long 和 ulong都是0,而char 类型字段的默认值值是’x0000’,float类型字段是0.0f,double类型字段是 0.0d等等)。

(2)如果类中赋初值的静态字段,那么自动生成一个静态构造函数,在静态函 数中完成赋初值。

(3)如果一个类没有明确指明派生自哪个类,默认会派生自Object类。

(4)如果一个类没有定义任何构造函数,默认会给该类生成一个构造函数。

(5)在调用子类的非静态构造函数的时候,默认会调用父类的构造函数。例如A 继承B,B继承C,C没有明确指明继承哪个类(实际上是继承Object),那么在实 例化A的时候,会首先调用B的构造函数,在调用的构造函数的时候又会调用C的构 造函数,在调用C的构造函数的时候又会去调用Object的构造函数,因此实例化一 个A对象时,在内部会经历一连串的构造函数调用,就上面的继承层次来说,构造 函数的调用顺序从先到后依次为:object->C->B->A。

下面这部分代码可以演示这个演示这个过程:

view plaincopy to clipboardprint?using System;     public class C   {       public C()       {           Console.WriteLine("C");       }   }   public class B:C   {       public B()       {           Console.WriteLine("B");       }   }   public class A:B   {       public A()       {           Console.WriteLine("A");       }   }     public class Demo:A   {       static int d=5;       public Demo()       {       }       public static void Main()       {           Demo d = new Demo();           Console.ReadLine();       }   }  using System;public class C{    public C()    {        Console.WriteLine("C");    }}public class B:C{    public B()    {        Console.WriteLine("B");    }}public class A:B{    public A()    {        Console.WriteLine("A");    }}public class Demo:A{    static int d=5;    public Demo()    {    }    public static void Main()    {        Demo d = new Demo();        Console.ReadLine();    }}