.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;

 主要用来处理、存储数据。无规定标签,可扩展。

 只能有一个根节点。

原文地址:https://www.cnblogs.com/MirZhai/p/11925335.html