C# 面試寶典

一、簡述 private、 protected、 public、 internal 修飾符的訪問權限。html

    private  私有成員 只有類成員才能訪問前端

    protected  保護成員 只有該類及該類的繼承類才能訪問程序員

    public  公共成員 沒有訪問限制web

    internal  只有當前程序集內才能訪問ajax


二、ADO.NET中的五個主要對象正則表達式

    connection  用於程序及數據庫的鏈接sql

    command    對數據庫發出指令數據庫

    DataAdpter  是數據源和DataSet的橋樑編程

    DataSet  是數據的緩存,只是數據在計算機中的一塊內存,沒法直接溝通數據源,只能經過DataAdpter進行溝通c#

    DataRead  循環讀取數據


三、頁面之間傳遞值的幾種方式。

     1.queryString  如 .....?id=1

     2.session

     3.cookie

     4.Server.Transfer傳值

     5.Appcation傳值

     6.PreviousPage


     Server.Transfer和Response.Redirect的區別

     Server.Transfer  在服務器內部直接跳轉到本地虛擬機的一個網頁,瀏覽器地址不變,若是刷新地址會重回到舊地址頁面。

     Response.Redirect  跳轉後,瀏覽器地址隨之變化。

  
四、C#中的委託是什麼?事件是否是一種委託?事件和委託的關係。

     委託是一種類型,事件是一個對象。

     委託是指向一個函數的指針。

     事件的內部是經過委託來實現的。

     事件只包括private的委託以及add,remove方法。


五、override與重載(overload)的區別

     override是面向對象的,是對父類方法的重寫

     overload是面向過程的,方法名同樣,可是參數名或參數個數不同。


六、C#中索引器是否只能根據數字進行索引?是否容許多個索引器參數?


七、屬性和public字段的區別是什麼?

    屬性在處理過程當中能夠非法賦值。

    通常狀況下,字段的get方法取到的就是set方法賦予的值。

    可是若是像

    public name

    {

          get{return 100;}

          set{}

    }

    那麼get方法取到的值和set方法賦予的值就不一致。


八、三層架構

    U(UI)B(BLL)D(DAL)

    U:表現層  與用戶的交互界面

    B:業務邏輯層   根據數據訪問層層取到的數據,根據業務邏輯進行處理。

    D:數據訪問層   直接對數據庫進行增刪改查

    思想:高內聚,低耦合

    優勢:良好的擴展性,分工明細,井井有條

    缺點:成本高

 

九、MVC模式

    V :表現層 與用戶的交互界面

    M:  業務邏輯層   根據數據訪問層層取到的數據,根據業務邏輯進行處理,數據封裝。

    C:   表現層與業務邏輯層之間的橋樑,根據不一樣的界面調用業務邏輯


十、什麼是裝箱(boxing)和拆箱(unboxing)? (*)

    裝箱 : 值類型轉換成引用類型

    拆箱:  引用類型轉換成值類型

    裝箱     object obj = 1;

    拆箱     int i = (int)obj;


十一、什麼叫應用程序域

 一種邊界,他是公共語言運行庫圍繞同一程序範圍內建立的對象創建。

   應用程序域有助於一個程序中建立的對象與其餘程序建立的對象隔離,使運行時行爲能夠預知。

   一個獨立進程能夠包含多個應用程序域,能夠理解爲是一個輕量型的進程。起到安全的做用。佔用資源少。


十二、CTS、CLS、CLR分別做何解釋(*)

      CTS : Common Type System 通用系統類型。

      CLS : Common Language Specification 通用語言規範。不一樣語言的語法不一樣

      CLR: Common Language Runtime 公共語言運行時 .NET提供的類。


1三、在dotnet中類(class)與結構(struct)的異同?

       類是引用類型,能夠被實例化,被分配到內存的堆上。傳遞時是引用傳遞。

       結構是值類型,參數傳遞時被複制傳遞,被分配到內存的棧上。


1四、堆和棧的區別?

      棧是編譯時分配的內存空間,在代碼中必須對棧的大小有明確的定義。值類型參數,值類型局部變量都分配到棧上。

      堆是程序運行時分配的內存空間。在程序運行時,能夠根據狀況分配內存的大小。


1五、能用foreach遍歷訪問的對象的要求

      須要是實現IEnumberable接口的類型或是聲明瞭GetEnumberatr方法的類型。


1六、GC是什麼? 爲何要有GC? 

      GC是垃圾收集器。GC只能處理託管在內存資源的釋放,對非託管的資源沒法回收。須要手動調用IDispose()方法進行回收。


1七、String s = new String("xyz");建立了幾個String Object?

      兩個,一個是「xyx」,一個是指向「xyx」的引用對象。


1八、值類型和引用類型的區別?

      1.值類型傳遞時是複製傳遞。引用類型傳遞時是引用傳遞,並不會複製對象自己,而只是複製一個指向對象的引用。

      2.值類型不能派生類,全部值類型都派生自System.TypeVaule。可是和引用類型相同的是,結構能夠實現接口。

      3.值類型不能包含null,可是非空類型容許將null賦給值類型。

      4.全部值類型都一個隱式構造函數來初始化默認值。


1九、C#中的接口和類有什麼異同。

  不一樣點:

  接口不能實例化

  接口能夠多繼承,類只能單個繼承

  接口不包括方法的聲明。

  類定義能夠在不一樣源文件中拆分。

  相同點:

  類,接口,結構均可以實現對多個接口的繼承。

  接口和類均可以定義屬性,方法,索引,事件。

  接口相似於抽象基類。繼承接口的全部非抽象基類必須實現接口的全部成員。

20、abstract class和interface有什麼區別

  相同點:都不能被實例化,能夠經過繼承實現其抽象方法。

  不一樣點:

  接口支持多繼承,抽象類只能單個繼承。

  接口不包含方法的實現,抽象類既能夠定義行爲,能夠提供實現。

  接口能夠實現回調,可是抽象類不能實現回調,由於繼承不支持。

  接口只包含事件,方法,索引器,屬性的的定義。可是不能包含字段和方法的實現。

  抽象類能夠包含方法,屬性,字段及能夠實現的方法。

  接口能夠用於值類型和引用類型,抽象類只能用於引用類型。

  
2一、是否能夠繼承String類?

  String是sealed類,不能被繼承。sealed是密封類。


2二、try {}裏有一個return語句,那麼緊跟在這個try後的finally {}裏的code會不會被執行,何時被執行?

  會執行,在return前執行。


2三、new 關鍵字用法(*)

  new 運算符 是建立對象和調用構造函數

  new 修飾符 顯式隱藏從基類繼承的成員

  new 約束  規定泛型類型參數必須擁有公共的無參構造函數。


2四、如何把一個Array複製到ArrayList裏(*)

  1. Array arr = {1,2,3,4} ;ArrayList arrList = new ArrayList(arr);

  2.Array arr = {1,2,3,4} ;ArrayList arrList = new ArrayList(); arrList.AddRange(arr);


2五、描述線程與進程的區別?(*)

  1.線程和進程都定義了某種邊界。進程定義了程序與程序的邊界。線程定義了代碼執行棧堆和上下文的邊界。

  2.一個程序只能有一個進程,而一個進程能夠擁有多個線程。同一進程中的線程共享數據。

  

2六、什麼是強類型,什麼是弱類型?哪一種更好些?爲何? 
  強類型實現定義好數據的類型,執行時不能變換,不容易出錯,效率高。

  弱類型沒有強制要求指定數據的類型,更加靈活,也容易出錯,效率低。


2七、什麼是反射?

  反射能夠動態建立類型的實例,調用類型的方法,訪問類型的屬性。


2八、int、DateTime、string是否能夠爲null?

  int,DateTime不行。由於它們是結構,屬於值類型,不能設置null。string能夠,它是類,能夠設置爲null。


2九、using關鍵字有什麼用?什麼是IDisposable?

  using能夠實現namespace的引入,實現非託管資源的釋放。

  實現了IDisposable接口的類在using接口後會自動調用Dispose(),釋放資源。


30、Assembly.Load("foo.dll"); 這句話是否正確?

  錯誤,Assembly.Load("foo");


3一、XML 與 HTML 的主要區別

  XML比HTML嚴格。

  XML必須區分大小寫,HTML不用

  XML的Tag在結束時,必須加結束符(/)

  XML的全部屬性必須在引號中,HTML可用可不用

  XML的全部屬性必需要有相應的值,HTML中的屬性能夠不帶值。

  XML必須結構完整,不能省略結束標記。


3二、string str = null 與 string str = 「」說明其中的區別。

  string str不分配內存,string str = 「」分配一個長度爲空字符的內存地址。

  string str 沒有對象,string str = ""有一個字符串對象。


33.寫出一條Sql語句:取出表A中第31到第40記錄(SQLServer,以自動增加的ID做爲主鍵,注意:ID可能不是連續的。

  select top 10 * from A where id not in (select top 30 * from A )

34.面向對象的語言具備________性、_________性、________性

  封裝,繼承,多態
35.在.Net中全部可序列化的類都被標記爲_____?

  [serializable]
36.在.Net託管代碼中咱們不用擔憂內存漏洞,這是由於有了______?

  GC
3七、什麼叫應用程序域?什麼是受管制的代碼?什麼是託管代碼?什麼是強類型系統?什麼是裝箱和拆箱?什麼是重載?CTS、CLS和CLR分別做何解釋?
3八、什麼是code-Behind技術。

  將頁面的顯示邏輯與代碼邏輯分離,提升代碼的可讀性和可維護性。


39接口是一種引用類型,在接口中能夠聲明(a),但不能夠聲明公有的域或私有的成員變量。

a) 方法、屬性、索引器和事件;
c) 索引器和字段;
d) 事件和字段;


40. 在ADO.NET中,對於Command對象的ExecuteNonQuery()方法和ExecuteReader()方法,下面敘述錯誤的是(c)。 

a) insert、update、delete等操做的Sql語句主要用ExecuteNonQuery()方法來執行;
b) ExecuteNonQuery()方法返回執行Sql語句所影響的行數。
c) Select操做的Sql語句只能由ExecuteReader()方法來執行;
d) ExecuteReader()方法返回一個DataReder對象;


41. 下列關於C#中索引器理解正確的是(c   )   

a) 索引器的參數必須是兩個或兩個以上
b) 索引器的參數類型必須是整數型
c) 索引器沒有名字
d) 以上皆非

 

42. 要建立多文檔應用程序,須要將窗體的(d   )屬性設爲true。

a) DrawGrid;
b) ShowInTaskbar;
c) Enabled;
d) IsMdiContainer;


43. 若是設treeView1=new   TreeView(),則treeView1.Nodes.Add("根節點")返回的是一個   (a)類型的值。  

a) TreeNode;
b) int;
c) string;
d) TreeView


44. 下面關於XML的描述錯誤的是(d)。

  a) XML提供一種描述結構化數據的方法;   
  b) XML   是一種簡單、與平臺無關並被普遍採用的標準;   
  c) XML文檔可承載各類信息;   
  d) XML只是爲了生成結構化文檔;  


4五、如下的C#代碼,試圖用來定義一個接口: 

public interface IFile
{
int A;
int delFile()
{
A = 3;
}
void disFile();
}
關於以上的代碼,如下描述錯誤的是(d )。
a) 以上的代碼中存在的錯誤包括:不能在接口中定義變量,因此int A代碼行將出現錯誤;
b) 以上的代碼中存在的錯誤包括:接口方法delFile是不容許實現的,因此不能編寫具體的實現函數;
c) 代碼void disFile();聲明無錯誤,接口能夠沒有返回值;
d) 代碼void disFile();應該編寫爲void disFile(){};

 


46 在ASP.NET中有Button控件myButton,要是單擊控件時,導航到其餘頁面http://www.abc.com,   正確的代碼爲(   c)。 

a) private void myButton_Click(object sender, System.EventArgs e){Redirect(「http://www.abc.com」);}
b) private void myButton_Click(object sender, System.EventArgs e){Request.Redirect(「http://www.abc.com」);}
c) private void myButton_Click(object sender, System.EventArgs e){Reponse.Redirect(「http://www.abc.com」);}
d) private void myButton_Click(object sender, System.EventArgs e){Request.Redirect(「http://www.abc.com」);return true;}


47. 聲明一個委託public   delegate   int   myCallBack(int   x);   則用該委託產生的回調方法的原型應該是(b   )。

a) void myCallBack(int x) ;
b) int receive(int num) ;
c) string receive(int x) ;
d) 不肯定的;


48.StringBuilder 和 String 的區別?

String每次運算時都會產生一個新的實例,而StringBuilder不會。


4九、.請敘述屬性與索引器的區別。 (*)沒啥意義

屬性 索引器

經過名稱標識。 經過簽名標識。

經過簡單名稱或成員訪問來訪問。 經過元素訪問來訪問。

能夠爲靜態成員或實例成員。 必須爲實例成員。

屬性的 get 訪問器沒有參數。 索引器的 get 訪問器具備與索引器相同的形參表。

屬性的 set 訪問器包含隱式 value 參數。 除了 value 參數外,索引器的 set 訪問器還具備與索引器相同的形參表。


50.請敘述const與readonly的區別。

const用於常數字段或局部變量的聲明。它聲明後的字段或變量沒法被修改。

const聲明變量是必須初始化。初始值必須是一個常量表達式。

const的初始值也能夠是另一個const常量。兩個const常量之間沒有依賴關係。

const是在編譯期間評估。

readonly是在運行期間評估。

readonly能夠在聲明或構造函數期間初始化。根據構造函數的不一樣,readonly能夠是不一樣的值。

readonly不能static方法中初始化。


51.  請解釋ASP。NET中的web頁面與其隱藏類之間的關係?

一個ASP.NET頁面通常都對應一個隱藏類,通常都在ASP.NET頁面的聲明中指定了隱藏類例如一個頁面Tst1.aspx的頁面聲明以下

<%@ Page language="c#" Codebehind="Tst1.aspx.cs" AutoEventWireup="false" Inherits="T1.Tst1" %>

Codebehind="Tst1.aspx.cs" 代表經編譯此頁面時使用哪個代碼文件

Inherits="T1.Tst1" 表用運行時使用哪個隱藏類


52.  什麼是viewstate,可否禁用?是否所用控件均可以禁用?

Viewstate是保存狀態的一種機制,EnableViewState屬性設置爲false便可禁用。最有力的舉例子:Label、TextBox在禁用ViewState後不一樣的表現來講明。


5三、你對web service的體會?
54您在什麼狀況下會用到虛方法?它與接口有什麼不一樣?

子類在重定義父類的一個方法時,必須將父類的方法設成虛方法

接口中聲明方法時不能有方法體,而虛方法有。

實現時,接口中的方法能夠不設定爲虛方法,可是繼承的類必需要實現這個方法。


55. 不定項選擇:

(1) 如下敘述正確的是: B C

A. 接口中能夠有虛方法。B. 一個類能夠實現多個接口。 C. 接口不能被實例化。 D. 接口中能夠包含已實現的方法。

(2) 從數據庫讀取記錄,你可能用到的方法有:B C D

A. ExecuteNonQuery B. ExecuteScalar C. Fill D. ExecuteReader

(3).對於一個實現了IDisposable接口的類,如下哪些項能夠執行與釋放或重置非託管資源相關的應用程序定義的任務?(多選) ( ABC )

A.Close B.Dispose C.Finalize D.using E.Quit

(4)如下關於ref和out的描述哪些項是正確的?(多選) ( ACD )

A.使用ref參數,傳遞到ref參數的參數必須最早初始化。

B.使用out參數,傳遞到out參數的參數必須最早初始化。

C.使用ref參數,必須將參數做爲ref參數顯式傳遞到方法。

D.使用out參數,必須將參數做爲out參數顯式傳遞到方法。


56. 單項選擇:

(1)下列選項中,(C)是引用類型。

a)enum類型 b)struct類型 c)string類型 d)int類型

(2).關於ASP.NET中的代碼隱藏文件的描述正確的是(C)

a)Web窗體頁的程序的邏輯由代碼組成,這些代碼的建立用於與窗體交互。編程邏輯惟一與用戶界面不一樣的文件中。該文件稱做爲「代碼隱藏」文件,若是用C#建立,該文件將具備「.ascx.cs」擴展名。

b)項目中全部Web窗體頁的代碼隱藏文件都被編譯成.EXE文件。

c)項目中全部的Web窗體頁的代碼隱藏文件都被編譯成項目動態連接庫(.dll)文件。

d)以上都不正確。

 

5七、DataReader和DataSet的異同?

DataReader使用時始終佔用SqlConnection,在線操做數據庫

每次只在內存中加載一條數據,因此佔用的內存是很小的

是隻進的、 只讀的

DataSet則是將數據一次性加載在內存中.拋棄數據庫鏈接..讀取完畢即放棄數據庫鏈接(非鏈接模式)

DataSet將數據所有加載在內存中.因此比較消耗內存...可是確比DataReader要靈活..能夠動態的添加行,列,數據.對數據庫進行 回傳更新操做(動態操做讀入到內存的數據)

 

5八、public static const; int A = 1;這段代碼有錯誤麼?

錯誤:const不能被修飾爲static ;由於定義爲常量 (const )後就是靜態的(static )。


59傳入某個屬性的set方法的隱含參數的名稱是什麼?

value,它的類型和屬性所聲名的類型相同。


60、C#支持多重繼承麼?

類之間不支持,接口之間支持。類對接口叫實現,不叫繼承。


6一、C#中全部對象共同的基類是什麼?

System.Object


6二、經過超連接怎樣傳遞中文參數?

用Url編碼,經過QueryString傳遞。用UrlEncode編碼,UrlDecode解碼。


6三、string、String;int、Int32;Boolean、bool的區別

String,Int32,Boolean都是.NET中的類。string,int,bool都是C#對這些類的別名。CTS。


6四、Server.Transfer和Response.Redirect的區別是什麼?(常考)

Server.Transfer僅是服務器中控制權的轉向,在客戶端瀏覽器地址欄中不會顯示出轉向後的地址;Response.Redirect則是徹底的跳轉,瀏覽器將會獲得跳轉的地址,並從新發送請求連接。這樣,從瀏覽器的地址欄中能夠看到跳轉後的連接地址。

Server.Transfer是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,而後把這些內容再發給瀏覽器,瀏覽器根本不知道服務器發送的內容是從哪兒來的,因此它的地址欄中仍是原來的地址。 這個過程當中瀏覽器和Web服務器之間通過了一次交互。

Response.Redirect就是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器從新去請求那個地址,通常來講瀏覽器會用剛纔請求的全部參數從新請求。這個過程當中瀏覽器和Web服務器之間通過了兩次交互。


6五、不是說字符串是不可變的嗎?string s="abc";s="123"不就是變了嗎?

String是不可變的在這段代碼中,s原先指向一個String對象,內容是 "abc",而後咱們將s指向"123",那麼s所指向的那個對象是否發生了改變呢?答案是沒有。這時,s不指向原來那個對象了,而指向了另外一個 String對象,內容爲"123",原來那個對象還存在於內存之中,只是s這個引用變量再也不指向它了。


6六、是否能夠從一個static方法內部發出對非static方法的調用?

不能夠。由於非static方法是要與對象關聯在一塊兒的,必須建立一個對象後,才能夠在該對象上進行方法調用,而static方法調用時不須要建立對象,能夠直接調用。也就是說,當一個static方法被調用時,可能尚未建立任何實例對象,若是從一個static方法中發出對非static方法的調用,那個非static方法是關聯到哪一個對象上的呢?這個邏輯沒法成立,因此,一個static方法內部不能發出對非static方法的調用。


6七、.Net中會存在內存泄漏嗎,請簡單描述。 (*)

.Net中有垃圾回收機制,它能夠將再也不使用的對象進行回收。

可是若是在長生命週期中建立一個短生命週期的對象後,又再也不使用它,就會形成內存泄露。


68說出一些經常使用的類、接口,請各舉5個


6九、BS與CS的聯繫與區別。

C/S是Client/Server的縮寫。客戶端須要安裝專用的客戶端軟件。

B/S是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器。在這種結構下,用戶界面徹底經過WWW瀏覽器實現,一部分事務邏輯在前端實現,可是主要邏輯在服務器端實現。瀏覽器經過Web Server 同數據庫進行數據交互。

C/S 與 B/S 區別:

1).硬件環境不一樣:

  C/S 通常創建在專用的網絡上, 小範圍裏的網絡環境, 局域網之間再經過專門服務器提供鏈接和數據交換服務.

  B/S 創建在廣域網之上的, 沒必要是專門的網絡硬件環境,例與電話上網, 租用設備. 信息本身管理. 有比C/S更強的適應範圍, 通常只要有操做系統和瀏覽器就行

2).對安全要求不一樣

  C/S 通常面向相對固定的用戶羣, 對信息安全的控制能力很強. 通常高度機密的信息系統採用C/S 結構適宜. 能夠經過B/S發佈部分可公開信息.

  B/S 創建在廣域網之上, 對安全的控制能力相對弱, 可能面向不可知的用戶。


70、編寫一個單例(Singleton)類。

public Chache()
{
  private cache = new Cache();

  private Cache(){}

  public Cache Instance = this.cache;

}


7一、什麼是sql注入?如何避免sql注入?

用戶根據系統的程序構造非法的參數從而致使程序執行不是程序員指望的惡意SQL語句。使用參數化的SQL就能夠避免SQL注入。


7二、數據庫三範式是什麼?

第一範式:全部屬性都是不可分割的基本數據

第二範式:表必需要有主鍵。

第三範式:表引用其餘表必須經過主鍵引用。


7三、說出一些數據庫優化方面的經驗?

1.常常查詢的字段上使用索引

2.查詢時只列出必要的字段,而不用*

3.避免隱式轉換形成全表檢索

4.避免在索引列上使用計算


7四、什麼是數據庫事務?

事物三特性:一致性,原子性,隔離性。


7五、談談你對設計模式的理解

設計模式都是面對對象編程思想的應用,咱們看到在有些模式中不只將常見對象封裝成了類,並且將狀態、操做也封裝成了類。學習設計模式可讓你對類的封裝、繼承、多態有更深的理解和體會。

使用適當的設計模式可使程序更易擴展和維護。在設計模式中對程序的擴展和維護一般是經過增長代碼來完成的,而不是經過修改代碼來完成。


7六、談談ViewState。談談對ASP.Net原理的理解。談談ASP.Net生命週期。
Label、Textbox在禁用ViewState的時候自增的不一樣表現


7七、post、get的區別

get參數會顯示在地址欄中,post不會
刷新時post會現實是否從新提交,get不會
post提交的數據量大,get提交的數據量小(2k)
get能被搜索引擎抓取,post不會
post能夠提交文件,get不行


7八、下面的程序執行結果是什麼?

class Person

{

public int Age { get; set; }

}

int i1 = 20;

int i2 = i1;

i1++;

Console.WriteLine(i2);

 

Person p1 = new Person();

p1.Age = 20;

Person p2 = p1;

p1.Age++;

Console.WriteLine(p2.Age);

答案:

20

21


7九、Http默認的端口號是(80)、Ftp默認的端口號是(21)、SQLServer的默認端口號是(1433)(傳智播客.Net培訓班原創模擬題)
80、
81 下面程序的執行結果是什麼?

int i = 10;

Console.WriteLine(i++);

Console.WriteLine(++i);

Console.WriteLine(i=20);

答案:

10

12

20


8二、若是不用VisualStudio,用哪一個命令行編譯C#程序?(*)

csc.exe


8三、下列哪一個名詞和WebService不直接相關?(B)(傳智播客.Net培訓班原創模擬題)

A、UDDI

B、GUID

C、WSDL

D、SOAP


8四、.Net Framework中的類是專門供C#調用的是嗎?(傳智播客.Net培訓班原創模擬題)

答:錯。VB.Net等語言均可以調用.Net Framework中的類。CTS、CLS


8五、開放性問題:說出儘量多的基於.Net Framework的語言。(*)(傳智播客.Net培訓班原創模擬題)

參考解答:C#、VB.Net、F#、PowerShell、IronPython、J#、Ruby.Net


8六、.Net、ASP.Net、C#、VisualStudio之間的關係是什麼?(傳智播客.Net培訓班原創模擬題)

Net通常指的是.Net Framework,提供了基礎的.Net類,這些類能夠被任何一種.Net編程語言調用,.Net Framework還提供了CLR、JIT、GC等基礎功能。

ASP.Net是.Net中用來進行Web開發的一種技術,ASP.Net的頁面部分寫在aspx 文件中,邏輯代碼一般經過Code-behind的方式用C#、VB.Net等支持.Net的語言編寫。

C#是使用最普遍的支持.Net的編程語言。除了C#還有VB.Net、IronPython等。

VisualStudio是微軟提供的用來進行.Net開發的集成開發環境(IDE),使用VisualStudio能夠簡化不少工做,不用程序員直接調用csc.exe等命令行進行程序的編譯,並且VisualStudio提供了代碼自動完成、代碼高亮等功能方便開發。除了VisualStudio,還有SharpDevelop、MonoDevelop等免費、開源的IDE,VisualStudio Express版這個免費版本。


8七、AJAX解決什麼問題?如何使用AJAX?AJAX有什麼問題須要注意?項目中哪裏用到了AJAX?(傳智播客.Net培訓班原創模擬題)

答:AJAX解決的問題就是「無刷新更新頁面」,用傳統的HTML表單方式進行頁面的更新時,每次都要將請求提交到服務器,服務器返回後再重繪界面,這樣界面就會經歷:提交→變白→從新顯示這樣一個過程,用戶體驗很是差,使用AJAX則不會致使頁面從新提交、刷新。

AJAX最本質的實現是在Javascript中使用XMLHttpRequest進行Http的請求,開發中一般使用UpdatePanel、JQuery等方式簡化AJAX的開發,UpdatePanel的方式實現AJAX最簡單,可是數據通信量比較大,由於要來回傳整個ViewState,並且不靈活,對於複雜的需求則可使用JQuery提供的ajax功能。

UpdatePanel的內部原理。

AJAX最重要的問題是沒法跨域請求(www.rupeng.com →so.rupeng.com),也就是沒法在頁面中向和當前域名不一樣的頁面發送請求,可使用在當前頁面所在的域的服務端作代理頁面的方式解決。

在如鵬網項目中發帖的時候顯示相關帖的功能、站內搜索項目中顯示搜索Suggestion、數據採集項目中都用到了AJAX。


8八、NET經過對各語言先編譯成( IL),而後再執行時用( JIT)將其編譯成本地平臺代碼,來實現異構平臺下對象的互操做。(*)
8九、編寫正則表達式驗證一個字符串是否爲Email。複習正則表達式部分的知識。

[0-9a-zA-Z]+@[0-9a-zA-Z]+[\.0-9a-zA-Z]+


90、Application 、Cookie和 Session 兩種會話有什麼不一樣?
9一、開放式問題:你常常訪問的技術類的網站是什麼?


9二、你對.net的GC的理解

GC是.NET的垃圾回收器,它可讓程序員不用關心資源的回收。

對象再也不使用後,GC不是當即進行回收,會適當回收。若是想當即回收,能夠執行GC.Collection().

GC不能回收非託管資源。對於非託管資源通常都實現了IDisposable接口,使用using關鍵字進行回收。


9三、請寫一個SQL語句:從user表中取出name列中的起始字符是「北京」的所有記錄

select * from user where name like '北京%'


9四、請你簡單的說明數據庫創建索引的優缺點

創建索引的表在查詢時速度快,可是在插入刪除時,須要建立索引,速度慢。並且建立因此會消耗磁盤空間。


9五、什麼是WEB服務控件?使用WEB服務控件有那些優點、劣勢? 

 

9六、下面程序的執行結果是什麼?(傳智播客.Net培訓班原創模擬題)

  int i = 10;

  if (i <=0) ;

    Console.WriteLine("i必須大於0");

  Console.WriteLine("ok");

答案:

i必須大於0

ok


9七、下面程序的執行結果是什麼?(傳智播客.Net培訓班原創模擬題)(*)

static void Main(string[] args)

{

Console.WriteLine(Calc());

 

Console.ReadKey();

}

 

static int Calc()

{

int i = 0;

try

{

return i;

}

finally

{

Console.WriteLine("finally");

i++;

}

}

答案:

finally

0


9八、開放式問題:工做中遇到不懂的問題是怎樣去解決的?(傳智播客.Net培訓班原創模擬題)
9九、開放性問題:你能說出哪些數據庫?(傳智播客.Net培訓班原創模擬題)
 
100、開放性問題:你能說出儘量多的你據說過的編程語言?(傳智播客.Net培訓班原創模擬題)(*)
 
 
10二、在下述選項時,沒有構成死循環的程序是

A.int i=100;while (1) { i=i%100+1; if (i>100) break; }

B.for (;;);

C.int k=1000; do { ++k; }while(k>=10000);

D.int s=36; while (s);--s;


10三、下列哪一個是和數據庫訪問技術關係不大的技術(C)

A、SQLHelper

B、EnterPrise Library

C、AppDomain

D、Linq

10四、下列哪些說法是錯誤的(傳智播客.Net培訓班原創模擬題)10五、從如下簡寫中任選一個簡單描述10六、請在數據庫中設計表來保存一個樹狀結構的公司組織結構10七、下面程序的執行結果是什麼?10八、在Windows命令行中敲入下面的指令各有什麼反應(傳智播客.Net培訓班原創模擬題)10九、下列這些軟件用過哪些?他們是用來作什麼的?(傳智播客.Net培訓班原創模擬題)1十、開放式問題:若是程序連不上SQLServer數據庫服務器服務器,你會怎麼排除這個故障?(傳智播客.Net培訓班原創模擬題)1十一、下面的IP地址有什麼含義?(傳智播客.Net培訓班原創模擬題)127.0.0.1:本地迴環地址(LoopBack),localh0.0.0.0:監聽全部的網卡。AnyIP。255.255.255.0 1十二、不用JQuery等框架實現AJAX無刷新登陸。提示:用純XMLHttpRequest實現。11三、單點登陸。11四、Http狀態碼各是什麼意思。500:服務器內部錯誤11五、 對html文本框進行賦值的JQuery語句,對html文本框進行取值的JQuery語句,對TextBox服務端控件進行取值的語句JQuery。11六、IE和FireFox的不一樣,IE6和IE8的不一樣。JQueryXMLHttpRequest。不一樣瀏覽器實現AJAX的代碼是不同的。InnerHTML。CSS、Javascript、dom。咱們項目開發中爲了不這些跨瀏覽器兼容的問題,就是用JQuery框架,他幫咱們屏蔽了瀏覽器的差別。 說說在軟件設計中你遇到的以空間換時間的例子?Cache、索引、簡繁轉換用Dictionary。

相關文章
相關標籤/搜索