程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 利用.net的內部機制在asp.net中實現身份驗證

利用.net的內部機制在asp.net中實現身份驗證

編輯:關於ASP.NET

在.net內部存在一些默認機制,具體說來有如下:

(1)如果類的實例字段沒有賦初始值,那麼它們就會被賦默認值,對於引用類 型字段的默認值為null,對於簡單值類型字段(即數值類型)默認值為對應形式 的0(如sbyte、byte、short、ushort、int、uint、long 和 ulong都是0,而char 類型字段的默認值值是’\0x0000’,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();
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved