.NET面試題收錄

來源:互聯網
上載者:User

標籤:伺服器端   取出   delete   調用   names   net   hand   瀏覽器   資料   

1.private、protected、public、internal修飾符的存取權限

   private 私人成員,只有在類的內部可以訪問

   protected 保護成員,在類的內部和繼承類中可以訪問

   public  公用成員,完全公開,沒有訪問限制

   internal  在同一個命名空間內可以訪問

2.ASP.NET頁面之間傳值得幾種方式(Cookie 。Application等)

   1)QueryString

QueryString是一種非常簡單的傳值方式,可以將傳送的值暴露在瀏覽器地址欄,如果傳遞對安全性

要求不高或結構簡單的數值時,可以使用這個方式,但是傳遞數組或對象就不能用了

A。使用方法: a、在源頁面中構造URL地址

                        b、在源頁面使用 Response.Redirect(URL)重新導向到上面的URL地址

                        c、才目的頁面中使用 Response.QueryString["name"] 取出上面URL地址中傳遞的值

eg:

 (1)  index.aspx

private void Button1_Click(object sender, System.EventArgs e) {   string s_url;   s_url = "b.aspx?name=" + Label1.Text;   Response.Redirect(s_url); }
(2)index2.aspx

   private void Page_Load(object sender, EventArgs e)

   {  

      Label2.Text = Request.QueryString["name"];

   }

2)Session

Session使用簡單,不僅能傳遞單一資料型別,還能傳遞對象,資料量大小不限制,但是在Session

變數中儲存大量的資料會消耗較多的伺服器資源。容易丟失。

A。使用方法:a、在源頁面中構造Session變數:Session["Name"]=“Value(Or Object)”

                       b、在目的頁面使用Session變數取出傳遞的值。Result=Session["Name"]

B。Session不用時可以銷毀,方法是 Session.Remove(“session名”)=====清除一個

                                                        Session.Clear()======清除所有

eg:

index.aspx

private void  Button_Click(object sender,System.EventArgs e)

{

    Session["name"]=Lable.Text;

}

index2.aspx

private void Page_Load(object sender,EventArgs e)

{

    string name;

    name=Session["name"].ToString();

}

3)Servere.Transfer

 這個才可以說是面象對象開發所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導

到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的。

ps:比較Server.Transfer和Response.Redirect的區別。

a、Server.Transfer在伺服器端完成,所以用戶端瀏覽器中的URL地址是不會改變的;

      Response.Redirect是用戶端完成,向伺服器端提出新的頁面處理請求,所以

      用戶端瀏覽器中的URL地址是會改變的

b、Server.Transfer在伺服器端完成,不需要用戶端提出請求,減少了用戶端對伺服器端提出請求。

c、Server.Transfer只能夠轉跳到本地虛擬目錄指定的頁面,也就是工程項目中的頁面,

     而Response.Redirect則十分靈活,可以跳轉到任何URL地址。

d、Server.Transfer可以將前一個頁面的各種類型的值傳到新的頁面;Response.Redirect

      則只能藉助URL中帶參數或是結合上面四種辦法把各種類型的值傳到新的頁面。

使用方法:

  a、在源頁面中使用Page類的Server.Transfer傳遞頁面資料。Server.Transfer("b.aspx","false")

  b.在目的頁面中,使用Context.Handler來接收資料:FormerPage formerPage = (FormerPage)Context.Handler; 然後用

formerPage的屬性和方法來擷取前一個頁面的值,或者直接用Context.Items["myParameter "]

eg:

   index.aspx

   public string Name 

{   get{ return Label1.Text;} } private void Button1_Click(object sender, System.EventArgs e) {   Server.Transfer("b.aspx"); }

index2.aspx
private void Page_Load(object sender, EventArgs e) {   a newWeb; //執行個體a表單   newWeb = (source)Context.Handler;   string name;   name = newWeb.Name; }
3.C#中的委託是什嗎?事件是不是一種委託?
委託是一種特殊的參考型別,它將方法作為特殊的對象封裝,從而將方法作為變數或參數進行傳遞,
事件是一種特殊的委託
using System;
namespase delegate
{
delegate void Function(double x,double y) //定義委託
class Program
{
static void Main()
{
Function fun;
double a=2,b=3;
Console.Write("請選擇函數:");
int i= int.Parse(Console.ReadLine());
if(i==1)
{
fun=new Function(Add);
                     }
fun(a,b);
}
static void Add(double x,double y)
{
Console.WriteLine("{0}+{1}={2}",x,y,x+y);
}
}

}
該程式首先定義了一個委託類型 Function,注意delete關鍵字之後需要說明委託的傳回型別
(沒有傳回型別位void)和參數類型,程式主方法首先建立了該類型的變數fun,之後可以將
指定的方法封裝到該委派物件,注意方法的參數列表和傳回型別都必須和委託的定義保持一致。
C#還允許將方法名直接寫在委託賦值運算式的等號右邊。eg: Function fun=Add;
4.override(重寫)與overload(重載)的區別

   override是重寫(覆蓋)了一個方法,以實現不同的功能。一般是用於子類在繼承父類時,

   重寫(重新實現)父類中的方法。不管重寫還是覆蓋都不會影響父類自身的功能。

   覆蓋使用new關鍵字,重寫會改變父類方法的功能即調用子類的功能,覆蓋仍調用父類功能

   虛方法,實方法都可被覆蓋,抽象方法和介面不可以。

   重寫(覆蓋)的規則:

   1、重寫方法的參數列表與傳回值必須完全與被重寫的方法的相同

   2、重寫方法的存取修飾詞大於被重寫方法的存取修飾詞(public>protected>default>private)

   3、重寫的方法所拋出的異常必須和被重寫方法的所拋出的異常一致,或者是其子類;

   4、被重寫的方法不能為private,否則在其子類中只是新定義了一個方法,並沒有對其進行重寫。

   5、靜態方法不能被重寫為非靜態方法(會編譯出錯)。

   6、父類中被重寫的方法必須聲明為virtual或abstract類型,子類方法用override關鍵字修飾,

eg:

    public  class  parent

    {

    public virtual string Function()
{
return "1";
}
}
 public class A : parent
{
public override string Function()
{
return "2";
}
}
public class B : parent
{
public new string Function() //new放在public前面和後面效果一樣。且不會編譯出錯
{
return "3";
}
}
 public class JustForTest
{
public void DoTest()
{
parent p=new parent();
A a = new A();
Parent parent1=new A();
B b = new B();
Parent parent2=new B();

Console.WriteLine(p.Function); //輸出1
            Console.WriteLine(a.Function());//輸出2
Console.WriteLine(parent1.Function);//輸出2
Console.WriteLine(b.Function());//輸出3
Console.WriteLine(parent2.Function)//輸出1
}
}
註:B b = new parent()編譯出錯(無法將類型parent隱式轉換為B)
overload
重載發生在同一個類中,方法名相同,參數不同,傳回型別可以不同的情況。應對不同需求
5.描述一下C#中索引器的實現過程,是否只能根據數字進行索引?
C#索引器可以根據任何資料類型進行索引
6.用.NET做B/S的系統,使用幾層來開發,為什麼這樣分層?
一般為三層,資料訪問層,商務邏輯層,展示層
資料訪問層實現對資料庫的增刪改查
業務層一般分為兩層,業務表現層實現對錶示層的溝通,商務規則層實現使用者密碼的安全等
展示層實現與使用者的互動
優點:分工明確,易於調試,具有可擴充性。缺點:增加成本
7.什麼叫應用程式定義域?


 
 
 

.NET面試題收錄

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.