.NET面试题(一)
2015-10-22 11:21
330 查看
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、CLR,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来实例化。
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
47、Response, Request
48、单例模式
49、Javascript,Ajax,Json,XML优点缺点
50、配置文件
相关文章推荐
- .NET面试题(三)
- 安卓Android面试题大全
- 管理的艺术
- 【读书笔记】程序员的自我修养总结(二)
- PHP程序员的工作职责与薪酬待遇 -兄弟连IT教育
- 程序员,你有多久没关爱自己了?
- 程序员,你有多久没关爱自己了?
- 程序员和加班文化
- 黑马程序员----集合3(Map、工具类)
- 黑马程序员----集合2(Collection、迭代、泛型)
- 黑马程序员----集合1(String、StringBuffer、基本数据类型对象)
- 黑马程序员----总结2(创建线程、同步、线程间通讯)
- 黑马程序员-OC回顾-基础语法(二)
- iOS面试整理
- (五)黑马程序员——oc基础之类方法与对象方法的比较
- 国外程序员推荐:每个程序员都应读的书
- 程序员怎样写好文档?
- 广州科学城 跪求《 Android程序员 》大神
- 雷文-武汉科技大学-软件工程-本科-20111020(2011年校园招聘找工作时的简历)
- IT从业人员关注哪些问题