【正文】
來,DataSet是放在內(nèi)存中的。DataSet 中重量級的對象,這個對象架構(gòu)在DataAdapter對象上,本身不具備和數(shù)據(jù)源溝通的能力;也就是說我們是將DataAdapter對象當(dāng)做DataSet 對象以及數(shù)據(jù)源間傳輸數(shù)據(jù)的橋梁。DataReader:當(dāng)我們只需要循序的讀取數(shù)據(jù)而不需要其它操作時,可以使用DataReader 對象。因為DataReader 在讀取數(shù)據(jù)的時候限制了每次只讀取一筆,而且只能只讀,所以使用起來不但節(jié)省資源而且效率很好。 使用Connection 對象來連接數(shù)據(jù)庫,使用Command 或DataAdapter對象來執(zhí)行SQL語句,并將執(zhí)行的結(jié)果返回給DataReader 或 DataAdapter ,然后再使用取得的DataReader 或DataAdapter 對象操作數(shù)據(jù)結(jié)果。 , 如....?id=1。委托可以把一個方法作為參數(shù)代入另一個方法。委托和事件沒有可比性,因為委托是類型,事件是對象,下面說的是委托的對象(用委托方式實現(xiàn)的事件)和(標(biāo)準(zhǔn)的event方式實現(xiàn))事件的區(qū)別。因為對于事件來講,外部只能“注冊自己+=、注銷自己=”,外界不可以注銷其他的注冊者,外界不可以主動觸發(fā)事件,因此如果用Delegate就沒法進行上面的控制,因此誕生了事件這種語法。事件只能add、remove自己,不能賦值。加分的補充回答:事件內(nèi)部就是一個private的委托和add、remove兩個方法面試聊:,解決問題。參數(shù)或參數(shù)類型不同,進行多次重載以適應(yīng)不同的需要。Override 是進行基類中函數(shù)的重寫。加分的補充回答:用reflector反編譯可以看出,索引器的內(nèi)部本質(zhì)上就是set_item、get_item方法。屬性和public字段的區(qū)別是什么?調(diào)用set方法為一個屬性設(shè)值,然后用get方法讀取出來的值一定是set進去的值嗎?屬性可以對設(shè)值、取值的過程進行非法值控制,比如年齡禁止設(shè)值負(fù)數(shù),而字段則不能進行這樣的設(shè)置。Public Age{get{return 100。加分的補充回答:用reflector反編譯可以看出,屬性內(nèi)部本質(zhì)上就是set_***、get_***方法。 } set { } } } Person p1 = new Person()。 ++。//輸出3三層架構(gòu)通常意義上的三層架構(gòu)就是將整個業(yè)務(wù)應(yīng)用劃分為:表現(xiàn)層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)。表現(xiàn)層(UI):通俗講就是展現(xiàn)給用戶的界面,即用戶在使用一個系統(tǒng)的時候的所見所得。數(shù)據(jù)訪問層(DAL):該層所做事務(wù)直接操作數(shù)據(jù)庫,針對數(shù)據(jù)的增添、刪除、修改、更新、查找等每層之間是一種垂直的關(guān)系。優(yōu)點: 分工明確,條理清晰,易于調(diào)試,而且具有可擴展性。MVC模式 (*)MVC(Model View Controller)模型-視圖-控制器aspx就是View,視圖;Model:DataSet、Reader、對象;Controller:cs代碼。而各種驗證什么的應(yīng)該是在模型里處理了。MVC最大的好處是將邏輯和頁面分離。關(guān)于拆箱裝箱:1)什么是裝箱(boxing)和拆箱(unboxing)? (*)裝箱:從值類型接口轉(zhuǎn)換到引用類型。 object obj = null。//裝箱,boxing。 int i1 = (int)obj。unboxing2)下面三句代碼有沒有錯,以inboxing或者unboxing為例,解釋一下內(nèi)存是怎么變化的int i=10。int j = obj。 要掌握裝箱與拆箱,就必須了解CTS及它的特點: NET重要技術(shù)和基礎(chǔ)之一的CTS(Common Type System)。.Net將整個系統(tǒng)的類型分成兩大類 :值類型和引用類型。值類型的一個最大的特點是它們不能為null,值類型的變量總有一個值。 1什么叫應(yīng)用程序域(AppDomain) (*)一種邊界,它由公共語言運行庫圍繞同一應(yīng)用程序范圍內(nèi)創(chuàng)建的對象建立(即,從應(yīng)用程序入口點開始,沿著對象激活的序列的任何位置)。在一個單獨的進程中可以存在多個應(yīng)用程序域。起到安全的作用。 class Worker : MarshalByRefObject { private static int count。 } public int GetValue() { return count。 Worker worker1 = (Worker)(, )。 AppDomain appDomain2 = (domain2)。 (999)。 (().ToString())。Int3Int16→int、String→string、Boolean→boolCLS:Common Language Specification 通用語言規(guī)范。CLR:Common Language Runtime 公共語言運行時,就是GC、JIT等這些。類是引用傳遞的。結(jié)構(gòu)體是復(fù)制傳遞的。1堆和棧的區(qū)別?棧是編譯期間就分配好的內(nèi)存空間,因此你的代碼中必須就棧的大小有明確的定義;局部值類型變量、值類型參數(shù)等都在棧內(nèi)存中。1能用foreach遍歷訪問的對象的要求需要實現(xiàn)IEnumerable接口或聲明GetEnumerator方法的類型。程序員不用擔(dān)心內(nèi)存管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以調(diào)用下面的方法:()()。1String s = new String(xyz)。string s1 = xyz。是一個string對象,因為“字符串拘留池”(因為字符串不可變,所以就可以共享同一個字符串實例)1值類型和引用類型的區(qū)別?,將復(fù)制包含的值。:所有的值類型均隱式派生自 。 null 值:然而,可空類型功能允許將 null 賦給值類型。 1C中的接口和類有什么異同。接口不包含方法的實現(xiàn)。類定義可在不同的源文件之間進行拆分。接口類似于抽象基類:繼承接口的任何非抽象類型都必須實現(xiàn)接口的所有成員。abstract class和interface有什么區(qū)別? 相同點: 都不能被直接實例化,都可以通過繼承實現(xiàn)其抽象方法。 接口只能定義行為;抽象類既可以定義行為,還可能提供實現(xiàn)。 接口只包含方法(Method)、屬性(Property)、索引器(Index)、事件(Event)的簽名,但不能定義字段和包含實現(xiàn)的方法;抽象類可以定義字段、屬性、包含有實現(xiàn)的方法。例如,Struct就可以繼承接口,而不能繼承類。2是否可以繼承String類? String類是sealed類故不可以繼承。加分的補充回答(也助記):讀取數(shù)據(jù)庫中數(shù)據(jù)的條數(shù)的程序public int QueryCount(){ ….. try { return ()。 }}(),把返回值存起來,然后再去執(zhí)行finally,然后把返回值返回。如果C()再執(zhí)行return就會出現(xiàn)return執(zhí)行失敗了,因為cmd已經(jīng)Dispose了。new 修飾符 用于向基類成員隱藏繼承成員。2如何把一個Array復(fù)制到ArrayList里(*)實現(xiàn)1 string[] s ={ 111, 22222 }。 (s)。 ArrayList list = new ArrayList(s)。,同時創(chuàng)建多個線程來完成某項任務(wù),便是多線程。用一個比喻來說,如果一個家庭代表一個進程,在家庭內(nèi)部,各個成員就是線程,家庭中的每個成員都有義務(wù)對家庭的財富進行積累,同時也有權(quán)利對家庭財富進行消費,當(dāng)面對一個任務(wù)的時候,家庭也可以派出幾個成員來協(xié)同完成,而家庭之外的人則沒有辦法直接消費不屬于自己家庭的財產(chǎn)。i=a。i=a。沒有好不好,二者各有好處,強類型安全,因為它事先已經(jīng)確定好了,而且效率高。它是在運行時創(chuàng)建和使用類型實例 加分的補充回答:聊用反射實現(xiàn)編輯器動態(tài)插件和如鵬網(wǎng)項目中插件體系實現(xiàn)第三方支付和定時任務(wù)的案例。string可以為null。加分的補充回答:using其實等價于try……finally,用起來更方便。 2. 在HTML中,如果上下文清楚地顯示出段落或者列表鍵在何處結(jié)尾,那么你可以省略/p或者/li之類的結(jié)束 標(biāo)記。 HTML:img src=brbrXML:img src=/imgbr/br/3. 在XML中,擁有單個標(biāo)記而沒有匹配的結(jié)束標(biāo)記的元素必須用一個 / 字符作為結(jié)尾。 4. 在XML中,屬性值必須分裝在引號中。 5. 在HTML中,可以擁有不帶值的屬性名。XML是用來存儲和傳輸數(shù)據(jù)的HTML是用來顯示數(shù)據(jù)的3string str = null 與 string str = “”說明其中的區(qū)別。 string str = null沒有string對象,string str = “”有一個字符串對象。 答:解1: select top 10 * from A where id not in (select top 30 id from A) 解2: select top 10 * from A where id (select max(id) from (select top 30 id from A )as A) 解答3:用ROW_NUMBER實現(xiàn)、_________性、________性 答:封裝、繼承、多態(tài)。? 答:[serializable] 3什么是codeBehind技術(shù)。比如分工,美工和編程的可以個干各的,不用再像以前asp那樣都代碼和html代碼混在一起,難以維護。3接口是一種引用類型,在接口中可以聲明( a) 方法、屬性、索引器和事件; b) 索引器和字段; 解讀:屬性、索引器和事件 最終都編譯生成方法。 a) insert、update、delete等操作的Sql語句主要用ExecuteNonQuery()方法來執(zhí)行; b) ExecuteNonQuery()方法返回執(zhí)行Sql語句所影響的行數(shù)。 解答:ExecuteScalar→select getdate()。 ) a) 索引器的參數(shù)必須是兩個或兩個以上 b) 索引器的參數(shù)類型必須是整數(shù)型 c) 索引器沒有名字 d) 以上皆非 a) XML提供一種描述結(jié)構(gòu)化數(shù)據(jù)的方法; b) XML 以下的C代碼,試圖用來定義一個接口: public IFile { int int = } void } 關(guān)于以上的代碼,以下描述錯誤的是(d a) 以上的代碼中存在的錯誤包括:不能在接口中定義變量,所以int disFile()。 disFile()。 disFile(){}; 正確的代碼為( a) private myButton_Click(object } b) private myButton_Click(object } void sender, e){(“”)。 d) private myButton_Click(object return } delegate myCallBack(int )。 myCallBack(int ; b) int num) receive(int ; d) 不確定的; 則不會。如果要操作一個不斷增長的字符串,盡量不用String類,改用StringBuilder類。因為系統(tǒng)先是把兩個字符串寫入內(nèi)存,接著刪除原來的String對象,然后創(chuàng)建一個String對象,并讀取內(nèi)存中的數(shù)據(jù)賦給該對象。它提供的Append方法,能夠在已有對象的原地進行字符串的修改,簡單而且直接。索引器 get get set value value set (*)它指定字段或局部變量的值不能被修改。因為它是在編譯時就需要完全評估。 const成員可以使用另一個const成員來初始化,前提是兩者之間沒有循環(huán)依賴。 readonly在運行期評估賦值,使我們得以在確?!爸蛔x訪問”的前提下,把object的初始化動作推遲到運行期進行。 readonly 關(guān)鍵字與 const 關(guān)鍵字不同: const 字段只能在該字段的聲明中初始化。因此,根據(jù)所使用的構(gòu)造函數(shù),readonly 字段可能具有不同的值。 const不能是“算出來的” readonly 只能在聲明時或者構(gòu)造函數(shù)里面初始化,并且不能在 static 修飾的構(gòu)造函數(shù)里面。NET中的web頁面與其隱藏類之間的關(guān)系?,% Page language=c Codebehind= AutoEventWireup=false Inherits= %Codebehind= 表明經(jīng)編譯此頁面時使用哪一個代碼文件Inherits= 表用運行時使用哪一個隱藏類aspx頁面會編譯生成一個類,這個類從隱藏類繼承。最有力的舉例子:Label、TextBox在禁用Vi