ASP.net新手經常會碰到的問題
來源:互聯網
上載者:User
asp.net|問題 1,關於ref與out的區別
ref 參數傳入時需要初始化
out 參數傳入時不需要初始化,但是出來的時候需要保證會產生一個有效地引用
2,在堆上運行跟在棧上運行有什麼區別
類,引用型等大型物件被分配在堆上,而實值型別分配在堆棧中,後者效率高。每個過程都有自己的堆棧空間,退出過程時,c#自動釋放堆棧空間。堆則由垃圾收集器來管理
3,frameset 和 iframe 的區別
frameset是架構,一個網頁被劃分成幾個塊, 每個塊為不同的網頁檔案。iframe是內嵌網頁,可以被嵌在一個頁頁的任何地方。一般iframe使用靈活些
4,sprintf、wsprintf、printf的區別
sprintf用於列印ANSI字元集
wsprintf用於列印UNICODE字元集
printf向標準裝置輸出,也就是顯示器STDOUT
5,Server.transfer 和response.redirect的區別
Server.Transfer:使用伺服器端方法將使用者重新導向到另一頁。
在此方案中,伺服器只是將上下文傳輸到另一頁。其優點是您可以共用頁之間的頁上下文資訊。其缺點是使用者的瀏覽器不知道在進行傳輸,因此不更新瀏覽器的記錄。如果使用者重新整理此頁,則可能會產生意外的結果。
Response.Redirect:將使用者從瀏覽器重新導向到另一頁。
在此方案中,將一個命令發送到使用者瀏覽器,使瀏覽器擷取另一頁。其優點是更新瀏覽器的記錄。其缺點是此方案執行額外的往返過程,這會影響效能。
6,Page.RegisterStartupscript 和response.write 的區別
Page.RegisterClientscriptBlock
指令碼將會被放在緊挨“</form>”
的前面。
Page.RegisterStartupscript
指令碼將會被放在緊挨後幾個隱藏的input的後面。
7,class 和struct的區別
結構是實值型別,class 是參考型別。
所有結構類型隱式地從類 System.valueType 繼承。
對結構類型變數進行賦值意味著將建立所賦的值的一個“副本”。
一個結構的預設值的計算如下:將所有實值型別欄位設定為它們的預設值,並將所有參考型別欄位設定為 null,這 樣就產生了該結構的預設值。
使用裝箱和unboxing操作在結構類型和 object 之間進行轉換。
對於結構,this 的意義不同。
在結構中,執行個體欄位聲明中不能含有變數初始設定式。
在結構中不能聲明無參數的執行個體建構函式。
在結構中不能聲明解構函式。