您的位置:首页 > 职场人生

.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、配置文件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: