.Net基礎面試題


總結一下面試.Net所遇到的基礎知識題,在此做下記錄

1、try {} catch{} finally{}執行順序

無論try和catch代碼塊里是否有return,finally代碼塊都會執行

如果try中沒有異常,則順序為try→finally,如果try中有異常,則順序為try→catch→finally。

如果有return,則有兩種不同情況:

private int test1() {
        int i = 1;
        try {
            i++;
            Console.WriteLine("try:" + i);
            return i;
        } catch (Exception e) {
            i++;
            Console.WriteLine("catch:" + i);
        } finally {
            i++;
            Console.WriteLine("finally:" + i);
        }
        return i;
    }  

輸出:

try:2
finally:3
2

注:因為當try中帶有return時,會先執行return前的代碼,然后暫時保存需要return的信息,再執行finally中的代碼,最后再通過return返回之前保存的信息。所以,這里方法返回的值是try中計算后的2,而非finally中計算后的3。

 1 private List<Int32> test2() {
 2         List<Integer> list = new ArrayList<>();
 3         try {
 4             list.add(1);
 5             Console.WriteLine("try:" + list);
 6             return list;
 7         } catch (Exception e) {
 8             list.add(2);
 9             Console.Writeline("catch:" + list);
10         } finally {
11             list.add(3);
12             Console.Writeline("finally:" + list);
13         }
14         return list;
15     }

輸出:

try:[1]
finally:[1, 3]
[1, 3]

注:這里為什么和上個例子不同呢,其實問題出在參數類型上,上一個例子用的是基本類型,這里用的引用類型。list里存的不是變量本身,而是變量的地址,所以當finally通過地址改變了變量,還是會影響方法返回值的。

2、web Service的了解

web service 即web服務,舉個例子說明一下說明是web 服務。

例如在Windows Server服務器上有個C#.Net開發的應用A,在Linux上有個Java語言開發的應用B,B應用要調用A應用,或者是互相調用,用於查看對方的業務數據。

通過Web Service,客戶端和服務器才能夠自由的用HTTP進行通信,不論兩個程序的平台和編程語言是什么。

WebService是一種跨語言和跨平台的遠程調用技術。

XML+XSD,SOAP和WSDL就是構成WebService平台的三大技術。

WebService采用HTTP協議傳輸數據,采用XML格式封裝數據

SOAP協議 = HTTP協議 + XML數據格式

WebService務器端首先要通過一個WSDL文件來說明自己家里有啥服務可以對外調用,服務是什么(服務中有哪些方法,方法接受 的參數是什么,返回值是什么),服務的網絡地址用哪個url地址表示,服務通過什么方式來調用。

3、webAPI和MVC的區別

 Web API屬於ASP.NET核心平台的一部分,它利用MVC框架的底層功能方便我們快速的開發部署WEB服務.

mvc主要用於建站,web api主要用於構建http服務

兩種框架主要是在Asp .Net的基礎上進行改造,主要是對HttpModuleHttpHandler做了擴展,實現方法是不一樣的。

比如說前者更像是在一層上建了第二層,引伸出更強大的路由機制,實現了諸如MvcHandlerControllerFactory這種消息處理和后台控制器方法選擇機制,

Web Api除了擴展了前者以外,另外寫出了一套獨立的,獨立於Asp .Net的消息處理管道,就像是借鑒原來房子的模型,重新設計出了另外一套別墅。這也很好地解釋了為什么Web Api可以寄宿在不同的宿主上

Web Api處理消息有兩個核心類是HttpRequestMessageHttpResponseMessage

4、XML的理解

  可擴展標記性語言

 使用xml時,一定要引用命名空間:using System.Xml;

 主要用來處理、存儲數據。無規定標簽,可擴展。

 只能有一個根節點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM