.NET面试题总结(一)
2012-08-06 18:01
267 查看
个人面试题总结 + 基础知识点的整理。。。不断更新中。。。
1、请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is System.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control;
tb.Text = String.Empty;
}
}
能用foreach遍历访问的对象需要实现 IEnumerable 接口或声明 GetEnumerator 方法的类型。
JS方法遍历:
function BianLi()
{
var t=document.getElementsByTagName("input");
for(var i=0;i<t.length && t[i];++i)
{
if(t[i].type=="text")
{
t[i].value="";
}
}
}
3、值类型,引用类型;
(1)、值类型:
a.值类型变量包含赋予的数据,如:当声明(int)整型变量并赋值时,该变量直接包含赋予的值。将一个值类型变量赋予另一个值类型变量时,则是建立该变量的副本。
int num1,num2;
num1=5;num2=num1;=>num1=5,num2=5;
num2=3; =>num1=5,num2=3;
b.所有的值类型在声明的时候都有默认值。如:
Boolean shang; 默认值为false;
int age;默认值为0;
可以使用default关键字获取值类型的默认值:
object x;
x=default(bool); x=false;
x=default(int); x=0;
c.如果没有明确地初始化变量,C#就禁止使用该变量。为了使用该变量,需要使用某个值对该变量进行初始化。如:
Boolean shang;
Console.WriteLine(shang); 报错
Boolean shang=false;
Console.WriteLine(shang); OK
d..NET Framework 带有一组预先定义的C#和.NET 值类型:bool,byte,sbyte,char,decimal,double,float,int,uint,long,ulong,short,ushort;
(2)、引用类型
对于引用类型,变量存储数据的引用而非实际数据,C#支持两种预定义的引用类型:Object和string;
数组是引用类型,但是数组中的元素可以是任意类型的。
(3)、值类型和引用类型的区别:
a.将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
b.值类型不可能派生出新的类型:所有的值类型均隐式派生自 System.ValueType。但与引用类型相同的是,结构也可以实现接口。
c.值类型不可能包含 null 值:然而,可空类型功能允许将 null 赋给值类型。
d.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
4、装箱,拆箱
装箱:从值类型转换为引用类型;
拆箱:从引用类型转换为值类型;
object obj = null;//引用类型
obj = 1;//装箱,boxing。把值类型包装为引用类型。
int i1 = (int)obj;//拆箱。unboxing
[b]5、受管制(托管)的代码[/b]
托管代码(safe):使用CLR编译语言编辑器开发编写的代码,由公共语言运行库环境执行的代码;
非托管代码(unsafe):在公共语言运行库环境外部,由操作系统直接执行的代码。
6、CTL,CTS,CLS
CLR:公共语言运行库(Common Language Runtime);
CTS:通用类型系统(Commom Type System);
CLS:通用语言规范(Common Language Specification);
7、[b]应用程序域,程序集[/b]
应用程序域:
就是为安全性,可靠性,隔离性,和版本控制,及卸载程序提供的隔离边界。它通常由运行库宿主创建,应用程序域提供了一个更安全,用途更广的处理单元。它由公
共语言运行库围绕同一个应用程序范围内创建的对象建立。应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。
程序集:
在.NET中可部署的基本单元成为程序集。是一个或多个托管模块,以及一些资源文件(EXE文件的过程程序集或DLL文件的库程序集)的逻辑组合。
强命名程序集:
程序集需要经过加密签名,强命名程序集可以部署到全局程序集缓存中,成为公共程序集。
8、Static 和 非Static的区别:
(1)、用Static声明的方法和变量,不需要实例化该类,通过类调用(static表示“静态”或者“全局”,被static修饰的方法或者变量独立于该类的任何对象);
(2)、非Static的,就一定要用实例化的对象来调用,即用new来实例化。
View Code
43、Visual Studio 和.NET Framework的关系
Visual Studio 是微软提供的编程(开发)工具,是一种集成开发环境。
.NET Framwork 是C#编程语言提供的类库,目的是为了方便快捷的开发,也是一些软件所必须安装的系统组件(一些软件只有安装了.NET Framwork 才能正常的安装)。
.NET Framwork 是以一种采用虚拟机运行的编程平台,以通用的语言运行库CLR为基础,支持多种语言(如C#、VB、C++、Python等)的开发。同时.NET也为应用程序开发接口(API)提供了新功能和开发工具。
C#是在.NET平台上使用的一种编程语言。ASP.NET是.NET的一种,ADO.NET又是ASP.NET里边访问数据库的一种技术。
44、WinForm之间的传值方式
45、Session,Cookie
46、foreach 和 for
[b]47、Response, Request[/b]
[b]48、单例模式 [/b]
[b]49、Javascript,Ajax,Json,XML优点缺点[/b]
[b]50、配置文件[/b]
1、请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
foreach (System.Windows.Forms.Control control in this.Controls)
{
if (control is System.Windows.Forms.TextBox)
{
System.Windows.Forms.TextBox tb = (System.Windows.Forms.TextBox)control;
tb.Text = String.Empty;
}
}
能用foreach遍历访问的对象需要实现 IEnumerable 接口或声明 GetEnumerator 方法的类型。
JS方法遍历:
function BianLi()
{
var t=document.getElementsByTagName("input");
for(var i=0;i<t.length && t[i];++i)
{
if(t[i].type=="text")
{
t[i].value="";
}
}
}
3、值类型,引用类型;
(1)、值类型:
a.值类型变量包含赋予的数据,如:当声明(int)整型变量并赋值时,该变量直接包含赋予的值。将一个值类型变量赋予另一个值类型变量时,则是建立该变量的副本。
int num1,num2;
num1=5;num2=num1;=>num1=5,num2=5;
num2=3; =>num1=5,num2=3;
b.所有的值类型在声明的时候都有默认值。如:
Boolean shang; 默认值为false;
int age;默认值为0;
可以使用default关键字获取值类型的默认值:
object x;
x=default(bool); x=false;
x=default(int); x=0;
c.如果没有明确地初始化变量,C#就禁止使用该变量。为了使用该变量,需要使用某个值对该变量进行初始化。如:
Boolean shang;
Console.WriteLine(shang); 报错
Boolean shang=false;
Console.WriteLine(shang); OK
d..NET Framework 带有一组预先定义的C#和.NET 值类型:bool,byte,sbyte,char,decimal,double,float,int,uint,long,ulong,short,ushort;
(2)、引用类型
对于引用类型,变量存储数据的引用而非实际数据,C#支持两种预定义的引用类型:Object和string;
数组是引用类型,但是数组中的元素可以是任意类型的。
(3)、值类型和引用类型的区别:
a.将一个值类型变量赋给另一个值类型变量时,将复制包含的值。引用类型变量的赋值只复制对对象的引用,而不复制对象本身。
b.值类型不可能派生出新的类型:所有的值类型均隐式派生自 System.ValueType。但与引用类型相同的是,结构也可以实现接口。
c.值类型不可能包含 null 值:然而,可空类型功能允许将 null 赋给值类型。
d.每种值类型均有一个隐式的默认构造函数来初始化该类型的默认值。
4、装箱,拆箱
装箱:从值类型转换为引用类型;
拆箱:从引用类型转换为值类型;
object obj = null;//引用类型
obj = 1;//装箱,boxing。把值类型包装为引用类型。
int i1 = (int)obj;//拆箱。unboxing
[b]5、受管制(托管)的代码[/b]
托管代码(safe):使用CLR编译语言编辑器开发编写的代码,由公共语言运行库环境执行的代码;
非托管代码(unsafe):在公共语言运行库环境外部,由操作系统直接执行的代码。
6、CTL,CTS,CLS
CLR:公共语言运行库(Common Language Runtime);
CTS:通用类型系统(Commom Type System);
CLS:通用语言规范(Common Language Specification);
7、[b]应用程序域,程序集[/b]
应用程序域:
就是为安全性,可靠性,隔离性,和版本控制,及卸载程序提供的隔离边界。它通常由运行库宿主创建,应用程序域提供了一个更安全,用途更广的处理单元。它由公
共语言运行库围绕同一个应用程序范围内创建的对象建立。应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。
程序集:
在.NET中可部署的基本单元成为程序集。是一个或多个托管模块,以及一些资源文件(EXE文件的过程程序集或DLL文件的库程序集)的逻辑组合。
强命名程序集:
程序集需要经过加密签名,强命名程序集可以部署到全局程序集缓存中,成为公共程序集。
8、Static 和 非Static的区别:
(1)、用Static声明的方法和变量,不需要实例化该类,通过类调用(static表示“静态”或者“全局”,被static修饰的方法或者变量独立于该类的任何对象);
(2)、非Static的,就一定要用实例化的对象来调用,即用new来实例化。
View Code
class Program { static void Main(string[] args) { string str = Console.ReadLine(); Console.WriteLine(ReverseA(str)); Console.WriteLine(ReverseB(str)); Console.WriteLine(ReverseC(str)); Console.WriteLine(ReverseD(str)); Console.WriteLine(ReverseE(str)); Console.ReadKey(); } //方法一: public static string ReverseA(string zfc) { char[] cArray = zfc.ToCharArray(); string reverse = String.Empty; for (int i = cArray.Length - 1; i > -1; i--) { reverse += cArray[i]; } return reverse; } //方法二: public static string ReverseB(string zfc) { char[] cArray = zfc.ToCharArray(); Array.Reverse(cArray);//Reverse 翻转整个一位数组的顺序 return new string(cArray); } //方法三:Push/Pop Stack<> public static string ReverseC(string zfc) { Stack resultStack = new Stack();//Stack表示对象的后进先出的非泛型集合 foreach (char c in zfc) { resultStack.Push(c); } StringBuilder sb = new StringBuilder(); while (resultStack.Count > 0) { sb.Append(resultStack.Pop()); } return sb.ToString(); } //方法四:LINQ public static string ReverseD(string zfc) { return new string(zfc.ToCharArray().Reverse().ToArray()); } //方法五:StringBuilder public static string ReverseE(string zfc) { char[] cArray = zfc.ToCharArray(); StringBuilder sb = new StringBuilder(); for (int i = cArray.Length - 1; i > -1; i--) { sb.Append(cArray[i]); } return sb.ToString(); } }
43、Visual Studio 和.NET Framework的关系
Visual Studio 是微软提供的编程(开发)工具,是一种集成开发环境。
.NET Framwork 是C#编程语言提供的类库,目的是为了方便快捷的开发,也是一些软件所必须安装的系统组件(一些软件只有安装了.NET Framwork 才能正常的安装)。
.NET Framwork 是以一种采用虚拟机运行的编程平台,以通用的语言运行库CLR为基础,支持多种语言(如C#、VB、C++、Python等)的开发。同时.NET也为应用程序开发接口(API)提供了新功能和开发工具。
C#是在.NET平台上使用的一种编程语言。ASP.NET是.NET的一种,ADO.NET又是ASP.NET里边访问数据库的一种技术。
44、WinForm之间的传值方式
45、Session,Cookie
46、foreach 和 for
[b]47、Response, Request[/b]
[b]48、单例模式 [/b]
[b]49、Javascript,Ajax,Json,XML优点缺点[/b]
[b]50、配置文件[/b]
相关文章推荐
- 2011年.NET面试题总结---献给即将找工作的同行们<二>
- .net 面试题总结
- 2011年.NET面试题总结---献给即将找工作的同行们<三>
- .NET 面试题总结 (附有参考答案) 第3部分
- 用.net面试题总结
- 2011年.NET面试题总结---献给即将找工作的同行们 .
- .NET 面试题总结 (附有参考答案) 第3部分
- 2011年.NET面试题总结(很经典的)
- 2011年.NET面试题总结---献给即将找工作的同行们
- 2011年.NET面试题总结---献给即将找工作的同行们
- .NET面试题总结
- 2011年.NET面试题总结---献给即将找工作的同行们
- 【总结—.Net面试题中的经典】
- .NET 面试题总结 (附有参考答案) 第1部分
- .net面试题总结1
- .NET 面试题总结 (附有参考答案) 第1部分
- .NET 面试题总结 (附有参考答案) 第2部分
- 【转】2011年.NET面试题总结(很经典的)
- .NET 面试题总结 (附有参考答案) 第2部分
- .NET 面试题总结 (附有参考答案) 第3部分