.NET面試題 – 組件開發人員 & XML開發人員

C#組件開發人員

  1. 什麼時候使用override?什麼時候使用new? 什麼叫shadowing?

    重寫父類的方法的時候用override以實現多態,當你想屏蔽父類成員的時候使用new,shadowing基本就是new與override區別等一些方面的問題,個人認爲弄清override與new就沒有必要特意考慮shadowing。

  2. 解釋virtual、sealed、override和abstract的區別?

    virtual是聲明虛方法的關鍵字,說明該方法可以被重寫,sealed說明該類不可被繼承,override重寫基類的方法,abstract表明一個類是抽象類或者一個方法是抽象方法,抽象方法不提供實現,由子類中重寫這個抽象方法的方法實現,抽象類不可實例化。

    1. Foo.Bar, Version=2.0.205.0, Culture=neutral, PublicKeyToken=593777ae2d274679d 解釋這個字符串每個部分的重要性和作用

      程序集的名字、版本(主版本、次版本、內部版本號、修訂號)、Culture(文化)如zh-CN,公鑰(縮略碼),這些是強名程序集的標誌。

  1. 解釋public、protected、private和internal的區別。

    標記public後可被在類的內部或外部訪問,protected只能被其自身內部或其子類訪問,private只能在其內部訪問,internal只能在相同的程序集中被訪問。

    1. 使用Primary Interop Assembly(PIA)有什麼好處?

      PIA是官方發佈並經過Sign,可以在不同程序中共享。PIA可能經過某種改動使其比一般Tlbimp生成的Interop DLL要容易使用一些,比如提供一些封裝函數。

  2. NUnit是通過什麼機制獲知需要測試哪些方法的?

    反射,爲測試方法加上[TestMethodAttribute]。

  3. catch(Exception e){throw e;}和catch(Exception e){throw;}的區別

    將發生的異常對象拋出,另一個只是拋出異常,並沒有拋出原異常對象

  4. typeof(foo)和myFoo.GetType()的區別?

    typeof()爲操作符,其操作數爲類型,而不能是類的實例。GetType()方法是類型的實例調用的,用於在運行時獲得對象的類型。

    1. public class c

      { public c(string a) : this() {;};

      public c() {;}

    }

    解釋第一個構造函數中發生了什麼?這個構造函數有什麼用?

    解答:第一個構造函數調用了第二個構造函數,這個構造函數構造了一個c對象的實例。其接受一個string類型的參數。

  5. this是幹嘛用的?能夠用在static方法中?

    this表示通過當前實例訪問一個對象,不能用於static中。

     

    XML開發人員

    1. XML命名空間的作用?

        當XML文檔較爲複雜或是需要從別 的地方取得內容時,一個文檔中有可能會需要不止一個詞彙,這樣就會產生名稱相同而含義不同的元素出現在不同詞彙中的情況。命名空間可以指明哪個元素屬於哪 個詞彙。它可以爲每個詞彙指定唯一的前綴進行識別,再將該前綴應用於XML文檔中的元素上。

    2. 何時適合使用DOM?何時不適合?有沒有尺寸限度?

        等待高手將答案賦予評論中。。致謝!

    3. 什麼是WS-I基本配置?它重要在哪裏?

        WS-I全稱爲Web服務互操作性 組。WS-I 基本配置文件規範 1.1 版是衆多供應商爲加快真正可互操作 Web 服務的部署而進行的一次嘗試,此規範消除了以前規範中的多義性,明確了創建符合規範的 Web 服務的限定,同時從大量可能的設置中選擇了一組 Web 服務設置。(源自MSDN)

    4. 寫一個小XML文檔,其中使用的是默認的命名空間,以及一個合法的(前綴)命名空間,其中要有分別屬於這兩個命名空間的元素。

         <? xml version = "1.0 " encoding = "UTF-8 "?>

    < kml xmlns = "http://www.opengis.net/kml/2.2 " xmlns:atom = "http://www.w3.org/2005/Atom ">

    < Folder >

    < name > 臨時位置 </ name >

    </ Folder >

    < atom:Document >

    < message ></ message >

    </ atom:Document >

    </ kml >

    直接上一段修改過的KML。

    5. 元素和特性的基本區別在哪裏?

        元素是xml樹型結構的節點,其必須成對出現。屬性位於一個元素當中。

    6. 格式完好的XML和有效的XML有什麼區別?

        有效的XML文件是指達到一個xml的最低標準,比如標籤需匹配等,如果達不到這個標準則不會被識別爲xml文件。有效的xml是指經過DTD或者XSD文件驗證的。

    7. .NET中如何驗證XML?

        這個直接參見微軟官方網站的說明。http://support.microsoft.com/kb/307379/zh-cn

    8. myXmlDocument.SelectNodes("//mynode"); 爲什麼這句代碼不好?什麼時候它是好的?

        如果單純選擇一個名爲mynode的節點,這種做法效率不高。只有當要獲取名爲mynode的節點的集合時可以使用這個語句。

    9. 拉式解析(XmlReader)與事件讀取器(Sax)的區別

        與 XML 的簡單 API (SAX) 讀取器類似, XmlReader 是一個只進、只讀的遊標。它提供了對輸入的快速和非緩存的流式訪問。它可以讀取流或文檔。它使用戶可以提取數據,並跳過對應用程序沒有意義的記錄。較大的 差異在於 SAX 模型是一個"推送"模型,其中分析器將事件推到應用程序,在每次讀取新節點時通知應用程序,而使用 XmlReader 的應用程序可以隨意從讀取器提取節點。(源自MSDN)

    10. XPathDocument和XmlDocument的區別? 在何種情況下應該用哪一個?

        XPathDocument 類使用 XPath 數據模型提供 XML 文檔在內存中的快速只讀表示形式。XmlDocument 類是實現 W3C 文檔對象模型 (DOM) 級別 1 核心和核心 DOM 級別 2 的 XML 文檔在內存中的可編輯表示形式。所以區別就在一個只讀。

    11. "XML片斷"與"XML文檔"有什麼區別

        首先比較重要的一點,XML文檔需要有"<?xml version="1.0" encoding="UTF-8"?>"這樣的聲明。而XML片段不強制。另外貌似XML可以有多個根節點(而XML文檔只能有一個根節點)

    12. 什麼叫格式規範的XML?

    類似6題中的解釋

    13. XML InfoSet規範與Xml DOM有什麼不同? InfoSet是要解決什麼問題?

        XML 信息集(XML Information Set, Infoset)允許您將一份 XML 文檔描述爲一系列具有特定屬性的對象。而DOM只表示出一個層次關係。所以InfoSet用來更好的用xml表示對象。

    14. 比較DTD和XSD,它們的相似點與區別分別是什麼?哪個更好些?爲什麼?

    從模式的描述語言來說,XML Schema和XML DTD都屬於語法模式。白話一點,就是都用來驗證xml的格式。但XML Schema的格式與XML DTD的格式有着非常明顯的區別,XML Schema事實上也是XML的一種應用,也就是說XML Schema的格式與XML的格式是完全相同的,而作爲SGML DTD的一個子集,XML DTD具有着與XML格式完全不同的格式。所以基於XML格式的XML Schema更具優勢。(參考IBM開發者網絡http://www.ibm.com/developerworks/cn/xml/x-sd/index.html

    15. System.Xml支持DTD嗎?如果支持,如何使用?

        第7個問題中的網址解釋了這個問題。

    16. XML Schema能夠表示爲對象圖?對象圖能夠表示爲XML Schema?

        肯定可以。Vs內置此工具。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章