企业常见面试题
委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的引用。
是,是一种特殊的委托
5.override
与重载的区别
答
:
重载是方法的名称相同。参数或参数类型不同,进行多次重载以适应不同的需要
Override
是进行基类中函数的重写。实现多态。
6
.
如果在一个
B/S
结构的系统中需要传递变量值,但是又不能使用
Session
、
Cookie
、
Application
,您有几种方法进行处理?
答
:
1.
使用
QueryString,
如
....?id=1; response. Redirect()....
2.
使用
Server.Transfer
3.
使用
Cache
4
使用
HttpContext
的
Item
属性
5.
使用文件
6.
使用数据库
7
.
请编程遍历页面上所有
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
}
}
8.
请编程实现一个冒泡排序算法?
答:
int [] array = new int [*]
int temp = 0
for (int i = 0 i < array.Length - 1 i++)
{
for (int j = i + 1 j < array.Length j++)
{
if (array[j] < array[i])
{
temp = array[i]
array[i] = array[j]
array[j] = temp
}
}
}
9
.
描述一下
C#
中索引器的实现过程,
是否只能根据数字进行索引?
(
索引器是对属性的封装
,
具体查看
msdn)
答:不是。可以用任意类型。
10.
求以下表达式的值,写出您想到的一种或几种实现方法:
1-2+3-
4+……+m
答:
int Num = this.TextBox1.Text.ToString()
int Sum = 0
for (int i = 0 i < Num + 1 i++)
{
if((i%2) == 1)
{
Sum += i
}
else
{
Sum = Sum - I
}
}
System.Console.WriteLine(Sum.ToString());
System.Console.ReadLine()
11.
用
.net
做
B/S
结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这
样分层?
答:使用
MVC
模式分层
一般为
3
层
数据访问层,业务层,表示层。
数据访问层对数据库进行增删查改。
业务层一般分为二层,
业务表视层实现与表示层的沟通,
业务规则层实现用户密码的安全等。
表示层为了与用户交互例如用户添加表单。
优点:分工明确,条理清晰,易于调试,而且具有可扩展性。
缺点:增加成本。
12.
在下面的例子里
using System;
class A
{
public A()
{
PrintFields();
}
public virtual void PrintFields(){}
}
class B:A
{
int x=1;
int y;
public B()
{
y=-1;
}
public override void PrintFields()
{
Console.WriteLine("x={0},y={1}",x,y);
}
}
当使用
new B()
创建
B
的实例时,产生什么输出?
答:
X=1,Y=0;x= 1 y = -1
注
:
B
类中的
PrintFields()
未用
override
关键字实现重写的时候,创建
B
的实例时:
X=1
,
Y = -1
13
.
什么叫应用程序域?
答:应用程序域可以理解为一种轻量级进程。起到安全的作用。占用资源小。
14.CTS
、
CLS
、
CLR
分别作何解释?
答:
CTS
:通用类型系统。
CLS
:公共语言规范。
CLR
:公共语言运行库。
15.
什么是装箱和拆箱?
答:从值类型接口转换到引用类型装箱。从引用类型转换到值类型拆箱。
16
.
什么是受管制
(
托管
)
的代码?
答:
托管代码是运行
.NET
公共语言运行时
CLR
的代码
unsafe
:非托管代码。不经过
CLR
运行。程序员自行分配和释放内存空间
17
.
什么是强命名程序集?
答:程序集需要经过加密签名
,
强命名程序集可以部署到全局程序集缓存中
,
成为公共程序集
18..net
中读写数据库需要用到那些类?他们的作用?
答:
DataSet:
数据集。
DataCommand:
执行语句命令。
DataAdapter:
数据的集合,用语填充。
DataReader:
数据只读器
19
.ASP.net
的身份验证方式有哪些?分别是什么原理?
答:
Windows(
默认
)
用
IIS
控制
From(
窗体
)
用帐户
Passport(
密钥
)
20
.
什么是
Code-Behind
技术?
答:代码后置。
21
.
在
.net
中,配件的意思是?
答:程序集。
(中间语言,源数据,资源,装配清单)
22
.
常用的调用
WebService
的方法有哪些?
答:
1.
使用
WSDL.exe
命令行工具。
2.
使用
VS.NET
中的
Add Web Reference
菜单选项
23
..net Remoting
的工作原理是什么?
答:服务器端向客户端发送一个进程编号,一个程序域编号,以确定对象的位置。
24.
在
C
#中,
string str = null
与
string str = “”
请尽量使用文字或图象说明其中的区别。
答:
string str = null
是不给他分配内存空间
,
而
string str = ""
给它分配长度为空字符串的内
存空间。
25.
请详述在
dotnet
中类
(class)
与结构
(struct)
的异同?
答:
class
可以被实例化
,
属于引用类型
,class
可以实现接口和单继承其他类
,
还可以作为基类
型
,
是分配在内存的堆上的
struct
属于值类型
,
不能作为基类型
,
但是可以实现接口
,
是分配在内存的栈上的
.
26.
根据委托
(delegate)
的知识,请完成以下用户控件中代码片段的填写:
namespace test
{
public delegate void OnDBOperate();
public class UserControlBase : System.Windows.Forms.UserControl
{
public event OnDBOperate
OnNew;
private void toolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)
{
if(e.Button.Equals(BtnNew))
{
//
请在以下补齐代码用来调用
OnDBOperate
委托签名的
OnNew
事件。
}
}
}
答:
if( OnNew != null )
OnNew( this, e );
27.
分析以下代码,完成填空
string strTmp = "abcdefg
某某某
";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代码执行完后,
i= j=
答:
i=13,j=10
28
.Sql
Server
服务器中,给定表
table1
中有两个字段
ID
、
LastUpdateDate
,
ID
表示更新
的事务号,
LastUpdateDate
表示更新时的服务器时间,
请使用一句
SQL
语句获得最后更新
的事务号
答:
Select
ID
FROM
table1
Where
LastUpdateDate
=
(Select
MAX(LastUpdateDate)
FROM
table1)
29.
根据线程安全的相关知识,分析以下代码,当调用
test
方法时
i>10
时是否会引起死锁
?
并简要说明理由。
public void test(int i)
{
lock(this)
{
if (i>10)
{
i--;
test(i);
}
}
}
答:不会发生死锁,
(但有一点
int
是按值传递的,所以每次改变的都只是一个副本,因此
不会出现死锁。但如果把
int
换做一个
object
,那么死锁会发生)
30
.
简要谈一下您对微软
.NET
构架下
remoting
和
webservice
两项技术的理解以及实际中的
应用。
答:
webservice
主要是可利用
HTTP
,穿透防火墙。
Remoting
可以利用
TCP/IP
,二进制传送提高效率。
31.
公司要求开发一个继承
System.Windows.Forms.ListView
类的组件,要求达到以下的特
殊功能:点击
ListView
各列列头时,能按照点击列的每行值进行重排视图中的所有行
(
排序
的方式如
DataGrid
相似
)
。根据您的知识,请简要谈一下您的思路
答:根据点击的列头
,
把该列的
ID
取出
,
按照该
ID
排序后
,
在给绑定到
ListView
中。
32.
给定以下
XML
文件,完成算法流程图。
<
FileSystem
>
<
DriverC
>