C# 超高面试题收集整理

1.
描述线程与进程的区别?
什么是Windows服务,它的生命周期与标准的EXE程序有什么不同
Windows上的单个进程所能访问的最大内存量是多少?它与系统的最大虚拟内存一样吗?这对于系统设计有什么影响?
EXE和DLL之间的区别是什么?
什么是强类型,什么是弱类型?哪种更好些?为什么?
PID是什么?在做系统的故障排除时如何使用它?
单个TCP/IP端口上能够侦听多少个进程?
什么是GAC?它解决了什么问题?
2.
阐述面向接口、面向对象、面向方面编程的区别
什么是Interface?它与Class有什么区别?
什么是反射?
使用ASMX的XML Web服务与使用SOAP的.NET Remoting的区别?
类型系统是由XMLSchema表示的吗?CLS是XMLSchema表示的吗?
从概念上阐述前期绑定(early-binding)和后期绑定(late-binding)的区别?
调用Assembly.Load算静态引用还是动态引用?
何时使用Assembly.LoadFrom?何时使用Assembly.LoadFile?
什么叫Assembly Qualified Name?它是一个文件名吗?它有什么不同?
Assembly.Load("foo.dll"); 这句话是否正确?
做强签名的assembly与不做强签名的assembly有什么不同?
DateTime是否可以为null?
什么叫JIT?什么是NGEN?它们分别有什么限制和好处?
.NET CLR中一代的垃圾收集器是如何管理对象的生命周期的?什么叫非确定性终结?
Finalize()和Dispose()之间的区别?
using() 语法有用吗?什么是IDisposable?它是如何实现确定性终结的。
tasklist /m "mscor*" 这句命令是干嘛的?
in-proc和out-of-proc的区别
.NET里的哪一项技术能够实现out-of-proc通讯?
当你在ASP.NET中运行一个组件时,它在Windows XP, Windows 2000, Windows 2003上分别跑在哪个进程里面?
3.
DateTime.Parse(myString); 这行代码有什么问题?
PDB是什么东西? 在调试中它应该放在哪里?
什么叫圈复杂度(cyclomatic complexity)?为什么它很重要?
写一个标准的lock(),在访问变量的前后创建临界区,要有"双重检查",
什么叫FullTrust?放入GAC的assembly是否是FullTrust的?
代码加上需要安全权限的特性有什么好处?
gacutil /l | find /i "Corillian" 这句命令的作用是什么?
sn -t foo.dll 这句命令是干嘛的?
DCOM需要防火墙打开哪些端口?端口135是干嘛用的?
对比OOP和SOA,它们的目的分别是什么?
XmlSerializer是如何工作的?使用这个类的进程需要什么ACL权限?
为什么不提倡catch(Exception)?
Debug.Write和Trace.Write有什么不同?何时应该使用哪一个?
Debug Build和Release Build的区别,是否会有明显的速度变化?请说明理由。
JIT是以assembly为单位发生还是以方法为单位发生?这对于工作区有何影响?
对比抽象基类和接口的使用
a.Equals(b)和a == b一样吗?
在对象比较中,对象一致和对象相等分别是指什么?
在.NET中如何实现深拷贝(deep copy)?
请解释一下IClonable
什么叫装箱?
string是值类型还是引用类型?
XmlSerializer使用的针对属性的模式有什么好处?解决了什么问题?
为什么不应该在.NET中使用out参数?它究竟好不好?
特性能够放到某个方法的参数上?如果可以,这有什么用?
4.

什么时候使用override?什么时候使用new? 什么叫shadowing?
解释virtual、sealed、override和abstract的区别
Foo.Bar, Version=2.0.205.0, Culture=neutral, PublicKeyToken=593777ae2d274679d 解释这个字符串每个部分的重要性和作用
解释public、protected、private和internal的区别
使用Primary Interop Assembly (PIA)有什么好处?
NUnit是通过什么机制获知需要测试哪些方法的?
catch(Exception e){throw e;}和catch(Exception e){throw;}的区别
typeof(foo)和myFoo.GetType()的区别?
public class c{ public c(string a) : this() {;}; public c() {;} } 解释第一个构造函数中发生了什么? 这个构造函数有什么用?
this是干嘛用的?能够用在static方法中?
5.
阐述一个基于浏览器的Form POST如何变成一个服务器端的事件,如Button1_OnClick。
什么是PostBack?
什么是ViewState? 它是否被编码过? 是否被加密过?谁会使用ViewState?
<machinekey>元素是干嘛用的?它用于哪两项ASP.NET技术?
说出ASP.NET 1.1中的3种Session State提供程序以及它们的优缺点?
什么叫Web Gardening? 在设计中如何使用它?
假设有一个ASP.NET应用程序,那么单独一个进程中允许多少应用程序对象?那两个进程呢?启用了Web Gardening的2个进程呢?这对设计有何影响?
ASP.NET会重用多个请求之间的线程吗?是否每个HttpRequest都有自己的线程?你是否应该用ASP.NET的Thread Local存储?
[ThreadStatic]属性在ASP.NET中有用吗?它有没有副作用?是好是坏?
如何使用HttpHandler简化现有的为.aspx页面提供验证图片的设计
HttpModule订阅的是什么类型的事件? 这对于实现有何影响?如果不打算重新编译ASP.NE应用程序,应该怎么做?
说出表示任意一个终端(URL)的方式,以及ASP.NET中把请求路由到那个终点的方式
解释cookie的工作原理。给出一个滥用Cookie的例子。
解释HttpRequest.ValidateInput()的重要性?
哪些数据是通过HTTP Header传递的?
对比HTTP动词GET和POST? 什么是HEAD?
说出至少6个HTTP状态码以及它们的含义
if-not-modified-since的工作原理是什么? 用ASP.NET如何实现它?
解释 <@OutputCache%>和如何使用VaryByParam、VaryByHeader.
VaryByCustom是如何工作的?
如何通过q=? (除了q=5)来实现ASP.NET HTML输出缓冲和缓冲过期(比如http://localhost/page.aspx?q=5)?
6.

XML命名空间的作用?
何时适合使用DOM?何时不适合?有没有尺度限制?
什么是WS-I基本配置?它重要在哪里?
写一个小XML文档,其中使用的是默认的命名空间,以及一个合法的(前缀)命名空间,其中要有分别属性这两个命名空间的元素
元素和特性的基本区别在哪里?
格式完好的XML和有效的XML有什么区别?
.NET中如何验证XML?
myXmlDocument.SelectNodes("//mynode"); 为什么这句代码不好?什么时候它是好的?
拉式解析(XmlReader)与事件读取器(Sax)的区别
XPathDocument和XmlDocument的区别? 在何种情况下应该用哪一个?
“XML片断”与“XML文档”有什么区别
什么叫格式规范的XML?
XML InfoSet规范与Xml DOM有什么不同? InfoSet是要解决什么问题?
比较DTD和XSD,它们的相似点与区别分别是什么?哪个更好些?为什么?
System.Xml支持DTD吗?如果支持,如何使用?
XML Schema能够表示为对象图?对象图能够表示为XML Schema?

(0)

相关推荐

  • Question:基于C#连续赋值的面试题(解答)

    题目在这里:Question:基于C#连续赋值的面试题介绍在msdn中,对=号操作符的说明如下: 赋值运算符 ( =) 将右操作数的值存储在左操作数表示的存储位置.属性或索引器中,并将值作为结果返回.操作数的类型必须相同(即右操作数必须可以隐式转换为左操作数的类型).首先来看int x,y,z;X = y = z = 1;.csharpcode, .csharpcode pre{font-size: small;color: black;font-family: consolas, "Couri

  • C#实现排列组合算法完整实例

    排列组合是常见的数学问题,本文就以完整实例形式讲述了C#实现排列组合算法的方法.分享给大家供大家参考之用.具体方法如下: 首先,数学中排列组合,可表示为:排列P(N,R) 其实排列实现了,组合也就实现了,组合C(N,R)就是P(N,R)/P(R,R) ,实现这一功能比较简单的是递归算法,但考虑到递归的性能,下面采用了2种非递归的方法,具体代码如下 using System; using System.Collections.Generic; namespace Test { class Prog

  • C#常见算法面试题小结

    本文实例汇总了C#面试常见的算法题及其解答.具有不错的学习借鉴价值.分享给大家供大家参考.具体如下: 1.写出冒泡,选择,插入排序算法. //冒泡排序 public class bubblesorter { public void sort(int[] list) { int i, j, temp; bool done = false; j = 1; while ((j < list.Length) && (!done)) { done = true; for (i = 0; i &

  • C# DES加密算法中向量的作用详细解析

    DES一共就有4个参数参与运作:明文.密文.密钥.向量.为了初学者容易理解,可以把4个参数的关系写成:密文=明文+密钥+向量:明文=密文-密钥-向量.为什么要向量这个参数呢?因为如果有一篇文章,有几个词重复,那么这个词加上密钥形成的密文,仍然会重复,这给破解者有机可乘,破解者可以根据重复的内容,猜出是什么词,然而一旦猜对这个词,那么,他就能算出密钥,整篇文章就被破解了!加上向量这个参数以后,每块文字段都会依次加上一段值,这样,即使相同的文字,加密出来的密文,也是不一样的,算法的安全性大大提高!

  • C#的3DES加密解密算法实例代码

    C#类如下: 复制代码 代码如下: using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;using System.IO; namespace ConsoleApplication1{    /// <summary>    /// 加解密类    /// </summary>    public class EncryptHelper  

  • Question:基于C#连续赋值的面试题介绍

    我们知道C#中 a=b=c;是合法的,例如: int i,j,k;i=j=k=1; 下面有两道题: 第一题: 复制代码 代码如下: const int x=1;    short y;    object z;    z=y=x; //请问下面的输出是什么?    Console.WriteLine(z.GetType().ToString()); 第二题: 复制代码 代码如下: class C {     private string x;     public string X     { 

  • c#获取相同概率随机数的算法代码

    这几天在做公司年会的一个抽奖软件,开始做的的时候,认为算法是很简单的,把员工的数据放进list里,把list的标号作为需要获取的随机数,根据得到的随机数就确定是谁中奖.后来测试发现,随机数的分布是非常不均匀的.后来才知道,原来计算机获取的随机数都是伪随机数,当抽奖的速度非常快的时候,获取的随机数是非常不均匀的,所以在每次抽奖的时候要添加延时.后来重新设计算法,最终实现了. 算法原理跟二分查找的过程有点像.一枚硬币抽中正.反面的概率是一样,当抽样的次数无限增多,抽中的概率是50%. 代码如下: 复

  • .net C# 实现任意List的笛卡尔乘积算法代码

    可以扩展到多个集合的情况.类似的例子有,如果A表示某学校学生的集合,B表示该学校所有课程的集合,则A与B的笛卡尔积表示所有可能的选课情况 复制代码 代码如下: using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq; namespace 算法{    public static class 算法    {        /// <summary>        /// 笛卡

  • c#哈希算法的实现方法及思路

    有想过hash["A1"] = DateTime.Now;这句是怎么实现的吗?我们来重温下学校时代就学过的哈希算法吧. 我们要写个class,实现如下主程序调用: 复制代码 代码如下: static void Main(string[] args)        {            MyHash hash = new MyHash();            hash["A1"] = DateTime.Now;            hash["A2

  • 解析C#彩色图像灰度化算法的实现代码详解

    代码如下所示: 复制代码 代码如下: public static Bitmap MakeGrayscale(Bitmap original)        {            //create a blank bitmap the same size as original            Bitmap newBitmap = new Bitmap(original.Width, original.Height);            //get a graphics object

随机推荐