问答题沿用
S1 C#:
Ch1:
1、= = 与Equals方法的区别?
对于值类型:由于值类型是存储在栈中,两者都是比较的是两个变量的在栈中的值是否相等。
对于引用类型:引用类型是在堆一个存储引用,指向堆中的某个具体值。= =判断引用地址,equals判断值
2、Java中的switch于C#中的switch的区别
Java中的switch:只能判断int, short及比int所占字节还少的类型
C#中的switch:可以判断string及比string所占字节少的类型
Ch2:
1、 冒泡排序(c#)口诀
int[] numbers ={ 49, 12, 65, 45, 88, 54 };
//排序前
Console.WriteLine("排序前:");
foreach (int i in numbers)
{
Console.Write(i + " ");
}
//冒泡排序
for (int i = 0; i < numbers.Length; i++ )
{
for (int j = 0; j < numbers.Length - 1 - i; j++ )
{//将最大数交换到最后
if(numbers[j] > numbers[j+1])
{
int temp = numbers[j];
numbers[j] = numbers[j + 1];
numbers[j + 1] = temp;
}
}
}
//排序后
Console.WriteLine("/n排序后:");
foreach (int i in numbers)
{
Console.Write(i + " ");
}
2、 分别写出四种循环语法
for(int i=0;i<length;i++){}while(true){} foreach(int i in numbers){}   do{}while(true);
3、 编程求数组中的最大数,打印所有的水仙花数,打印九九乘法表
求最大数:int[] numbers ={ 49, 12, 65, 45, 88, 54 };
int max = 0;
for (int i = 0; i < numbers.Length-1; i++ )
{
if(numbers[i] > numbers[i+1])
{
max = numbers[i];
}
}
Console.WriteLine("最大数为:"+max);
水仙花数:for (int i = 100; i < 1000; i++ )
{
int a = i % 10;        //个位数
int b = i % 100;   //十位数
b = b / 10;
int c = i / 100; //百位数
int number = (int)Math.Pow(a, 3) + (int)Math.Pow(b, 3) + (int)Math.Pow(c, 3);
if(number == i)
{
Console.Write(i + "   ");
}
}
打印九九乘法表:for (int i = 1; i <= 9; i++ )
{
for (int j= 1; j <= i; j++)
{
Console.Write("{0}×{1}={2}/t", j, i, i * j);
}
Console.WriteLine();
}
Ch3:
1、 命名空间的含义:包,便于管理
2、 引用传递和值传递的区别:主要是相对于值类型,用引用传递加ref,就可实现其值真正的改变。值传递,当调用方法结束后,则不会改变值。
3、 请写出String的常用方法(10个),并描述功能
Equals():判断值相等Split():以…分割每个字符为string[]数组IndexOf():返回指定字符的索引
Concat():连接,相当于’+’号Trim():忽略前后空格ToUpper():转换为大写ToLower():转换为小写
StartsWith():开头字符是否匹配 SubString():截取字符串ToCharArray():转换为char[]数组
4、 分别写出数据类型转换(至少四种)的方法,代码举例
显示转换:int i=(int)12.9;
隐式转换:double d=12;
int/double/float.parse ()转换:string s=”13”;int i=int.parse(s);
convert:int x = 13;double d = Convert.ToDouble(x);
Ch4:
1、 Partial关键字的含义
Partial局部类型允许我们将一个类、结构或接口分成几个部分,分别实现在几个不同的.cs文件中。
适用于以下情况:(1) 类型特别大,不宜放在一个文件中实现。(2) 一个类型中的一部分代码为自动化工具生成的代码,不宜与我们自己编写的代码混合在一起。(3) 需要多人合作编写一个类
http://blog.csdn.net/dotnet90/archive/2006/12/23/1455796.aspx
2、 Windows窗体的生命周期常用事件有哪些?
Initialize, Load, Activated(窗体被激活时), Deactivate(窗体被停用时), FormClosed, FormClosing
3、 写出常用的控件键盘事件和鼠标事件
键盘事件:KeyDown, KeyUp, KeyPress
鼠标事件:Click,DoubleClick,MouseClick,MouseDown,MouseEnter,MouseHover,MouseLeave,MouseMove,MouseUp
4、 请写出MessageBox常用的四种类型,以及返回值类型
MessageBox.Show(“消息内容”);返回类型:DialogResult
MessageBox.Show(“消息内容”,”标题”);返回类型:DialogResult
MessageBox.Show(“消息内容”,”标题”);返回类型:DialogResult
MessageBox.Show(“消息内容”,”标题”, MessageBoxButtons按钮类型);返回类型:DialogResult
MessageBox.Show(“消息内容”,”标题”, MessageBoxButtons按钮类型, MessageBoxIcon图标类型
);返回类型:DialogResult
Ch5:
1、 anchor和dock的区别
anchor(锚定):距离容器边缘的距离,当控件锚定到某个边缘时,与指定边缘最接近的控件边缘与指定边缘之间的距离将保持不变。
dock(停靠):将控件停靠在窗体或容器的边缘,距离为0px
2、 如何创建一个MDI窗体(步骤),即多文档窗体
1)设置子窗体:子窗体名称 form = new Form(); form.MdiParent=this(父窗体); form.show();
2)设置父窗体属性:isMdiContainer=true;
3、 模式窗体和非模式窗体的区别
模式窗体:form.ShowDialog();有返回值:DialogResult;程序会中断,主窗体不能激活,必须关闭模式窗体才能激活主窗体, 只能show出一个
非模式窗体:form.Show (); 无返回值,程序不会中断;可以show出多个
4、 使用第三方类传递窗体间的数据(代码演示)
public class UserHelpper
{
public static string loginId = "";     //用户名
public static string loginType = "";   //登录类型
}
Ch6:
1、 ADO.Net重要组件(那幅图6.2)
.NetFramework和DateSet
2、 数据提供者程序有哪些
3、 连接字符串的写法(两种)
"Data Source=./SQLEXPRESS;Initial Catalog=数据库名;Integrated security=true;"
"server=./sqlexpress; database=数据库名; uid=用户名; password=密码"
4、 Connection对象的属性和方法:数据库连接对象
属性:state 连接状态, DataBase 获取连接对象的数据库名称, DataSource连接对象的实例名
方法:Open()/Close() 打开/关闭数据库, Dispose() 释放连接资源, ChangeDatabase() 为打开的当前连接对象更改数据库名。
5、 异常处理各关键字的作用
try:可能发生异常的代码块
catch:捕获到何种异常,如何去处理, 可以跟多个catch块,但子类异常必须写在父类异常的前面
finally:不管有没有异常都将执行的代码块
6、 Command对象的属性和方法:SQL语句执行命令
属性:CommandText获取或设置要对数据源执行的 Transact-SQL 语句、表名或存储过程。 Connection获取或设置 SqlCommand 的此实例使用的 SqlConnection
方法:ExecuteNonQuery() 执行增,删,改语句,并返回受影响行数; ExecuteScalar() 执行查询,返回结果的第一行第一列,忽略其他列或行; ExecuteReader() 执行查询,返回DataReader对象
Ch7:
1、 DataReader对象的主要属性和方法
属性:HasRows 有没有读取到DataReader中的数据;IsClosed 是否已关闭DataReader对象
方法:Read() 读取一行数据;GetString()/GetDouble()… 获取何种类型的数据值; Close() 关闭DataReader对象; IsDBNull() 获取一个值,用于指示列中是否包含不存在的或缺少的值
2、 请写出获取并使用DataReader对象的步骤
1)建立数据库连接conn=new …Connection(…);2)创建Command对象cmd= new …Command(sql, conn);3)执行SQL查询命令sdr=cmd. ExecuteReader();4)处理数据 while(sdr.Read()){int i=sdr.getInt(0);}
Ch8:
1、 请写出DataSet(临时数据库)的内部结构(图8.2)
2、 写出填充一个DataSet的步骤
3、 数据集的工作原理(图8.3)
4、 如何将数据集中的数据保存到数据库,请写出步骤
S2 深入.NET
Ch1:
1、 画出.NET框架的结构(图1.7)
.net Framework类库:ASP.Net(Web和Web Service)、WinForms、ADO.Net和XML类、基本框架类。
CLR:CLS和CTS。
2、 解释CTS(Common Type System通用类型系统)和CLS(Common Language Specification公共语言规范)的含义
CTS:解决不同语言的数据类型不同的问题。
CLS:实现多种语言之间的互操作性。
3、 C#编译器
画出.NET编译过程(图1.8)
C#代码
Microsoft中间语言
(MSIL)
平台专用代码
VB.Net代码
VB.net编译器
CLR
JIT编译器
4、 解释.NET解决了DLL灾难
5、 解释垃圾回收机制工作原理(回去查资料)
垃圾回收器是用来管理应用程序的内存分配和释放的。当一个应用程序在运行的时候,垃圾回收器设置了一个托管堆。每次当开发人员使用 new 运算符创建对象时,运行库都从托管堆为该对象分配内存。新创建的对象被放在上次创建的对象之后。垃圾回收器保存了一个指针,该指针总是指向托管堆中最后一个对象之后的内存空间。当新的对象被产生时,运行库就知道应该将新的对象放在内存的什么地方。当垃圾回收器的指针指向托管堆以外的内存空间时,就需要回收内存中的垃圾了。在这个过程中,垃圾回收器首先假设在托管堆中所有的对象都需要被回收。然后它在托管堆中寻找被根对象引用的对象(根对象就是全局,静态或处于活动中的局部变量以及寄存器指向的对象),找到后将它们加入一个有效对象的列表中,并在已经搜索过的对象中寻找是否有对象被新加入的有效对象引用。直到垃圾回收器检查完所有的对象后,就有一份根对象和根对象直接或间接引用了的对象的列表,而其它没有在表中的对象就被从内存中回收
6、 CLR主要用途(Common Language Runtime公共语言运行时)
是所有.Net应用程序运行时的环境,所有应用程序都要使用的编程基础,它如同一个支持.Net应用程序运行和开发的虚拟机。
Ch2:
1、 什么是类和对象
类:具有相同特征工共同行为的一级对象的集合。是一个模子。
对象:是真实的实体。
它们的关系:由对象归纳为类,是归纳对象共性的过程;在类的基础上,将状态和行为实体化为对象的过程称为实例化。
2、 什么是封装
封装是面向对象的三大特性之一,用于隐藏内部实现,对外只暴露对类的基本操作,而不会让其他对象影响类的实现。
3、 什么是函数重载
一个类中两个以上的方法,名字相同使用的参数类型或参数个数不同,称为重载。
其方式包括两种:参数不同类型的重载和参数个数不同的重载。
4、 解释静态方法和实例方法的差别(表2-2)
实例方法:需要使用类的实例对象来调用的方法
静态方法:通过“类名.方法名”来调用的方法
不需要static关键字
Static关键字修饰
实例对象调用
类名调用,不需要new出来
可以直接访问静态成员
可以访问静态成员
可以直接访问实例成员
不可以直接访问实例成员
可以直接调用实例方法和静态方法
不能直接调用实例方法
实例化对象时初始化
调用前初始化
5、 写出Pascal和Camel命名法的意义
Pascal命名法:类、属性、方法(公有成员)的命名,单词的第一个字母要大写。
Camel命名法:变量(私有成员)的命名,首字母小写,后面的单词首字母大写。
只通过名称就能猜出此变量的含义,采取有意义的单词。
6、 写出out与ref的区别:都可以将参数值的更改保留
out传递参数:侧重于输出,必须对out参数先进行赋值。
ref传递参数: 侧重于修改,可以不先赋值。
Ch3:
1、 说明枚举的作用
枚举可以避免不合理的赋值,它表示一组有限的值,对可能的值进行约束;更易于输入,使代码更清晰,允许描述性的名称表示数据,使用时直观方便。
2、 写出如何用枚举来进行复合状态判断(上课扩展):http://aierong.javaeye.com/blog/282925
定义性别枚举:public enum Gender
{
male=0, female=1
}
//将字符串”male”转换为枚举:Gender 性别 = (Gender)Enum.Parse(typeof(Gender), "male");
//将数字0转换为枚举:Gender 性别男 = (Gender)Enum.Parse(typeof(Gender), "0");
//将枚举转换为数字:int i = Convert.ToInt32(Gender.male);
或:int j = ((IConvertible)((System.Enum) Gender.male)).ToInt32(null);
3、 结构和类的差别(表3-1)
结构struct
类class
值类型
引用类型
不能被继承
可以被继承
可以有默认构造函数
可以有默认构造函数
添加的构造函数必须带参数
可以添加无参的构造函数
创建对象可以不用new
创建对象必须使用new
在结构中给字段赋值是错误的
类中可以给字段赋值,不能写属性
都可以包含字段、方法,也都可以实现接口
4、 什么是值类型,什么是引用类型
值类型:每个值类型的对象都有一个独立的内存区域保存自己的值,源自System.ValueType,主要包括基本数据类型、结构、枚举
引用类型:存储的是对象的引用,源自System.Object,主要包括类类型、接口类型、数组等
5、 int i=0; object o=new object();运行前两句的内存图
栈区:
int i
0
100H
new Object()
堆区:
Object o=100H
6、 什么是装箱拆箱并举例说明
装箱:把值类型转换成引用类型的过程 int i=10; object obj=i;
拆箱:由引用类型转换为值类型的过程 int j=(int)obj;
7、 请创建一个学生类的类关系图
Ch4:
1、 arrayList和hashtable的区别点,写出两种集合的常用方法
ArrayList:实现IList接口,IList继承自ICollection
HashTable:键-值 key-value
使用大小可按需动态增加的数组实现
表示键/值对的集合,这些键/值对根据键的哈希代码进行组织
只能通过数字索引访问元素
可以通过数字索引和key访问元素
常用方法:Add()、Contains()、Remove()、RemoveAt()、ToArray()、Clear();
属性:Count、Item
Add()、ContainsKey()、ContainsValue()、Remove()、Clear();
属性:Keys、Values、Count、Item
2、 什么是泛型,解释泛型的含义及优点
泛型:将类型参数化,通过泛型可以定义类型安全的数据类型,保证了类型的安全性,其性能更高。
如:List<int> list=new List<int>; 访问时不用再进行类型转换,添加元素时也只能添加int类型的数据。
Ch5:
1、 文件读写流程
1)创建文件流:FileStream fs = new FileStream(@"C:/test.txt", FileMode.Create);
2)创建写入器:StreamWriter sw = new StreamWriter(fs); /读取器:StreamReader sr
3)写入内容:sw.Write("aaaaaa"); /string content=fs.ReadToEnd();
4)关闭写入器:sw.Close(); /sr.Close();
5)关闭文件流:fs.Close();
2、 静态类和非静态类的区别
静态类
非静态类
用static修饰
不用static修饰
只包含静态成员
可以包含静态成员,也可以包含非静态成员
不可以包含实例成员
可以包含实例成员
使用类名调用静态成员:类名.方法名()
使用实例对象调用非静态成员
不能被实例化
可以被实例化
不能包含实例构造函数
可以包含实例构造函数
3、 什么是XML:eXtensible Markup Language 可扩展标记性语言
XML用于描述数据,每对标记称为节点,是成对出现的,其各个节点可以自由地扩展,节点区分大小写
4、 写出xmlDocument、xmlNode的常用属性和方法
xmlDocument对象可表示整个XML文档:Load() 读取整个XML结构、ChildNodes 获取所有子节点、DocumentElement获取根节点。
xmlNode表示XML中的节点:InnerText 当前节点的内容、Name当前节点的名字、ChildNodes当前节点的所有子节点。
Ch6:
1、 什么是继承
一个类可以继承自另一个类,比如学生类Student和老师类Teacher继承自Person类,被继承的类称为父类或基类,继承自其他类的类称为子类或派生类。
继承关系在类图中用箭头表示,箭头指向父类。它们符合is-a的关系,即子类is a父类。
继承中的方法重写,虚方法等。用base关键字可以从子类访问父类的属性与方法。
2、 请写出public、private、protected的区别(表6-1)
修饰符
类内部
子类
其他类
public
可以
可以
可以
private
可以
不可以
不可以
protected
可以
可以
不可以
Ch7:
1、 什么是抽象类,什么是抽象方法
抽象方法是一个没有实现的方法,在定义方法时增加关键字abstract声明,它没有包括方法执行逻辑的方法体。如:public abstract void SayHi(); 含有抽象方法的类称为抽象类。但抽象类的方法并不一定全是抽象方法,也可以包括具体方法。抽象类不能被实例化,也不能是密封或静态的。
2、 Override和new的区别
override:在子类或实现类中用来重写抽象方法或虚方法。将覆盖父类的方法。
new:在子类的用new关键字修饰的方法,将会是一个新的方法,它不会覆盖父类的方法。
3、 解释什么是里氏替换原则(左父右子)
一般发生在多态的情况下。如:父类类型 对象 = new 子类类型();
4、 is和as的区别
is:用于判断类型时,返回true/false。
as:用于两个对象之间的类型转换,当转换失败时,返回null,不会引发异常。
5、 解释关键字virtual的含义
Virtual用来修饰虚方法,虚方法可以有具体的实现,也可以被子类重写。
6、 请画图说明简单工厂设计模式
父类产品
子类产品A
子类产品B
子类产品C
工厂
客户
7、 虚方法和抽象方法的区别
虚方法
抽象方法
用virtual修饰
用abstract修饰
要有方法体,哪怕只有一个分号
不能有方法体
可以被子类override
必须被子类override
除了密封类外都可以写
只能在抽象类中
8、 面向对象的三大特性是什么? 并简述每个原则的基本功能
三在特征:封装、继承、多态。
Ch8:
1、 请解释接口和抽象类的异同点(表8-1)
接口
抽象类
用interface修饰
用abstract修饰
实现类可以实现多个接口
只能继承一个类
实现接口的类必须实现所有接口中的成员
非抽象派生类必须实现抽象方法
直接实现
需要override实现抽象方法
都不能实例化,且均包含未实现的方法,其派生类必须实现未实现的方法。
2、 接口作为参数的意义和接口作为返回值的意义
接口作为参数时,我们只需要传递一个实现了接口的对象,只要此对象实现了该接口都可作为参数传递进去。
接口作为返回值时,实际上要返回的也是实现了接口的对象。
3、 隐式实现接口和显示实现的操作(代码)
定义接口:public interface IPerson
{
void SayHi();
}
隐式实现:public void SayHi()
{
throw new Exception("The method or operation is not implemented.");
}
显示实现: 避免了接口成员之间因为同名而发生混淆。不能通过类的实例进行访问,强制转换为接口调用。
void IPerson.SayHi()
{
throw new Exception("The method or operation is not implemented.");
}
http://cometlj.javaeye.com/blog/377912
Ch9:
1、 什么是特性
特性:即为目标元素(可以是数据集、模块、类、属性、方法、甚至函数参数等)加入附加信息,类似于注释。其本质上也是一个类。一般来说,特性命名都以Attribute结尾,使用时可以省略。
2、 什么是序列化,写出序列化的基本过程(图9-3)
格式化程序
序列化:将对象的状态存储到特定存储介质中的过程,也可以说是将对象状态转换为可保持或传输的格式的过程。在序列化过程中,会将对象的公有成员,私有成员包括类名,都转换成数据流的形式,存储到存储介质中,即通常所说的文件。
对象是否可序列化
对象的成员是否
可序列化
格式化器将对象格式化为特定格式数据流
写入文件
结束
异常处理退出
Yes
No
No
Yes
3、 序列化和反序列化的用途
当我们需要将对象的字段值保存在磁盘中时,不需要再去编写大量对象去写入,只需要将每个对象加一个可序列化标记[Serializable],就可实现。在远程通信中应用非常广泛。
4、 程序集和命名空间的区别
程序集就是一个编译好的.exe文件,是.net框架应用程序的生成块,它包含编译好的代码逻辑单元。.dll也是一个程序集。
而命名空间namespace是相当于一个包,使用管理我们的代码。
5、 程序集的结构
程序集由描述它的程序集清单(包含指定该程序集的版本要求和安全标识所需的所有元数据)、类型元数据、MSIL代码(实现类型元数据的中间代码)和资源组成。
6、 Sealed修饰属性、方法、类的含义
Sealed修饰类时,表示该类不能再被继承,不能和 abstract 同时使用,因为它们在含义上互相排斥。
用于方法和属性时,表示该方法或属性不能再被重写,必须和 override 关键字一起使用,因为使用 sealed 修饰符的方法或属性肯定是基类中相应的虚成员。
通常用于实现第三方类库时不想被客户端继承,或用于没有必要再继承的类以防止滥用继承造成层次结构体系混乱
7、 什么是反射,及功能
反射就是可以用ILDasm反编译工具浏览一个dll和exe的构成。反射可以获取已加载的程序集和在其中定义的类型(如类、接口和值类型)的信息。也可以利用反射在运行时创建类型实例以及调用和访问这些实例。还可以查找程序集的信息。
8、 使用反射实现加载程序集,并实例化该程序集中某一类型,并调用该类型中的某一方法(代码实现)
如:string version=Assembly.LoadFile(@“D:/test.ext”).GetName().Version.ToString();
S2 在.NET框架下开发三层结构
Ch1:
1、 什么是三层结构,并解释各层次的主要功能(图1-7)
三层:表示层、业务逻辑层(BLL)、数据访问层(DAL)。
表示层
业务逻辑层
数据访问层
为用户提供交互操作界面
负责关键业务的处理和数据传递
实现数据库访问
2、 请写出三层数据传递方向(图1-12)
表示层
业务逻辑层
数据访问层
客户请求
客户请求
响应数据
响应数据
3、 三层开发的优势
便于维护与后期开发,分工明确。
Ch2:
1、 什么是DataView
就是DataTable的动态视图,并可以对动态生成的视图中的数据进行排序、筛选等操作。
2、 使用三层开发用户登陆(画类图)
3、 使用代码实现DataSet结构(32页)
两种方式:1)通过指定DataSet中具体的DataTable的某行某列来获取数据:通过表名(从DataSet中获取指定的DataTable)、通过索引(从DataTable中获取指定的DataRow)、通过列名(从DataRow中获取指定列的数据)。2)将DataSet中的数据直接绑定到数据展示控件上
Ch3:
1、 实体类在三层结构中的应用(图3.1)
三层结构之间数据传递的载体,可以消除关系数据与类之间的差别,以便更好地使用面向对象思想来实现系统。
2、 Using关键字在c#中的用法
有两种用法:1)作为指令,引入命名空间;2)作为语句,允许用户定义一个范围,并在此范围末尾自动释放对象。
Ch4:
1、 为什么需要异常处理
处理程序运行时发生的错误。
当异常发生时,系统要能够自动处理,避免系统终止运行,防止出现故障而导致的系统崩溃。
2、 如何进行异常处理
Try…catch…finally
注意:不要用太多的异常处理,同时要尽量避免使用嵌套异常处理,因为异常处理使用不合理会使系统的性能下降。
3、 什么是单元测试
软件开发中的单元测试是对整个项目中的某一个模块及模块中的某一个类、或某类中的某一个方法的测试。
4、 为什么需要单元测试
单元测试要确保编写的代码语法和语义都正确,确保软件质量的具体操作方法。
5、 如何使用VSTS写单元测试(步骤)
创建测试、编写测试、运行测试。
6、 Exception类的常用属性(MESSAGE,SOURCE)的含义
Message:提供引用异常的详细信息
Source:导致异常发生的应用程序或对象的名称。
7、 简述throw关键字在异常处理中的使用过程
throw表示手动抛出一个异常。
如:throw new Exception(“我抛出的异常!”);
Ch5:
1、 什么是设计模式
设计模式描述了软件开发过程中某一类常见问题的一般性解决方案。
而面向对象设计模式是对在特定场景下,解决一般设计问题中类与相互通信工程对象的描述。
2、 客户
抽象工厂设计模式结构图(图5-4/图5-5)
抽象工厂(基类)
实体工厂1
实体工厂2
抽象产品A
实体产品A2
实体产品A1
抽象产品B
实体产品B2
实体产品B1
3、 简述使用接口、抽象类、抽象方法实现抽象工程设计模式的过程
Y2 ASP.NET
Ch1:
1、ASP.NET的特色与优势(第7页)
优点:1)与浏览器无关;2)方便设置断点、易于调试;3)编译后执行,运行效果提高;
4)丰富的控件库;5)代码后置;
Ch2:
1、 简述ASP.NET的请求流程,说明第一次请求和第二次请求
.aspx文件
Asp.net
引擎
后置代码
生成的页面类
页面类
第一次请求
解析
生成
编译
响应
第二次请求
第二个请求
实例化
2、 说明Page的Language、AutoEventWireup、CodeFile、Inherits的含义
Language:指定页面代码和后置代码使用的语言;
AutoEventWireup:设置页面是否自动调用网页事件,默认为true;
CodeFile:指定代码后置的文件名
Inherits:页面类
3、 Request对象的QueryString、Form、ServerVariable、params的含义
QueryString:收集以Get方式请求而发送的数据;
Form:收集以Post方式请求而发送的数据;
ServerVariable(环境变量):包含服务器和客户端的系统信息;
Params:以上三种方式的集合,不区分是由哪种方式传递的参数。
4、 COOKIE、SESSION、APPLICATION的区别(表42页)
Cookie:保存少量的、简单的数据,一般不允许超过4KB(与浏览器有关)使用期限可以灵活设定,面向单个用户,保存在客户端。
Session:也只能保存少量的、简单的数据,面向单个用户,单个连接的信息,保存在服务器端。当Session超时或被关闭时,将清空保存的数据(20分钟)。一般用来保存单个用户的登录信息。
Application:能够保存任意大小的信息,在整个应用程序周期中有效,是面对所有应用程序用户的,保存在服务器端。一般保存一些用户共享的的信息。
5、 简述一个session的生命周期(创建->销毁的过程)
一般来说,一个IE启动后,开始请求服务器端的数据开始,Session就创建,当用户停止使用应用程序后(会话结束时),SessionSession一般还要保存20分钟才真正销毁。
6、 说明Server对象的常用方法(第43页表2)
HtmlEncode:可将其html标签,在浏览器中显示成字母,而不转换成标签。
HtmlDecode:与HtmlEncode相反,对已编码的内容进行解码。
MapPath:返回指定路径在磁盘中的绝对路径。
UrlEncode:对URL进行编码,如’#’,’&’等。
UrlDecode:与UrlEncode相反,对URL地址进行解码。
Execute:可将两个页面合并成一个页面显示。
Transfer:服务器端转向,使地址栏不发生变化。
7、 进程COOKIE和永久化COOKIE的区别
进程COOKIE:内存cookie,服务器停止就消失,在服务器运行
永久化COOKIE:
8、 代码演示从客户端取COOKIE,并回写到客户端
9、 用session和Cookie保存购物车的流程
Ch3:
1、 html服务器控件和web服务器控件的区别
html服务器控件;直接产生html标签,响应较快,但功能弱。继承自:System.Web.UI.HtmlControls类。
web服务器控件:转换以后产生html标签,功能强,响应慢,可以执行复杂的页面请求。继承自:System.Web.UI.Control类。以asp:为前缀。
2、 母版页的特点
母版页是以“.master”为后缀的文件,它可以将页面上的公用元素整合到一起,对应内容页。
有4个特点:1)有利于站点修改和维护,降低开发人员的工作强度。2)提供高效的内容整合能力。3)有利于实现页面布局。4)提供一种便于利用的对象模型。
3、 母版页和普通页的区别
区别:1)声明:母版页对应Master,普通页对应Page。2)扩展名:母版页对应.master,普通页对应.aspx。3)ContentPlaceHolder控件:母版页可以使用ContentPlaceHolder控件,而普通页不可以使用该控件,普通页应用母版页时多产生标签asp:content。
Ch5:
1、 Control类
数据源控件的说明(表5-1)
普通数据源控件
层次化数据源控件
ObjectDataSource
SqlDataSource
XMLDataSource
SiteMapDataSource
AccessDataSource
2、 Eval和Bind的区别
Eval:只读(单向数据绑定),所绑定的内容不会提交回服务器,有一个重载的方法,以实现格式化
Bind:支持读/写(双向),可以更新数据,常常为TextBox控件绑定数据,以提交给服务器
Ch6:
1、 验证控件的工作原理
2、 写出5大验证控件,并分别写出常用属性
验证控件都有一个共同的属性:ControlToValidate 要验证的控件ID
1) RequiredFieldValidator非空验证: Text, ErrorMessage
2) CompareValidator 验证用户输入的内容是否符合要求。
3) RangeValidator 检查范围: MaximumValue, MinimumValue, Type
4) RegularExpressionValidator 正则表达式:
5) CustomValidator 用户自定义验证: ClientValidationFunction, OnServerValidate;
Ch7:
1、自定义分页的SQL语句
Select Top PageSize * from tablename where 条件 and id not in(select Top PageSize * (pageIndex-1)*PageSize order by 排序条件) order by 排序
2、使用自定义分页的步骤用名字描述
3、 GridView、DataList、repeater三大控件的特点
dataList, repeater两控件的用户类似: repeater不会产生多余的html标签
gridView:比较古板的多行显示。
Ch9:
1、 什么是用户控件: User Control
一种自定义的组合控件,通常由系统提供的可视化控件组合而成。它不仅可以定义显示界面,还可以编写事件处理代码。
2、 用户控件和普通页面的区别(表9-1)
用户控件
普通页面
后缀名
.ascx
.aspx
指令
@Control
@Page
继承
System.Web.UI.UserControl
System.Web.UI.Page
包含
可以包含控件和其他用户控件,也可以被其他用户控件和页面包含
可以包含控件和所有用户控件,但是不可以被其他页面所包含
直接访问
不可以,必须包含在页面中才能发挥作用
可以
标签
不能包含<Html>、<body>等html标签
可以包含所有的html标签
编译和运行
可以独立编译,但不能单独运行。不可以直接访问。
可直接访问
3、 写出用代码加载用户控件的步骤
4、 写出ASP.NET http请求内部过程(图9-12)并解释HTTPMODEL和HTTPHandler
5、 使用HTTPhandler实现水印的步骤
Ch10:
1、 web.config和machine.config的层次结构(图10.1)
2、 配置节点和读取该节点的代码
3、 解释身份验证类型(表10-1)
4、 Form常用属性(表10-2)
5、 如何配置自定义错误(P257)
Y2 使用AJAX和WEB Service重构网上书店
Ch1:
1、 web service的优点
1) 是可互操作的分布式应用程序 2)具有普通性,它使用HTTP和XML进行通信
3)可以穿越防火墙,真正实现自由通信 4)通过SOAP实现异地调用
2、 解释SOAP协议
SOAP是Web Service的基本通信协议。它是在分散或分布式的环境中交换信息的,是基于XML的协议。通过它我们可以实现不同项目、不同站点,甚至异地调用。
3、 说明WSDL的作用,描述XML配置节的含义
Ch2:
1、 ajax的组成原理,并用代码实现
XmlHttpRequest从服务器(数据服务器或WEB服务器)获取数据到客户端的内存中,然后javascript根据实际需要对这些资源进行处理,并通过CSS和DOM实现界面布局呈现给浏览器。
2、 ASP.NET AJAX框架组成
主要包括:核心组件、工具包、增值组件、示例代码、框架类库5个部分
Ch4:
1、 为什么需要使用缓存,缓存的优势
因为:Web应用程序通常是需要不断的和数据库交互,如果在数据量非常大的情况下,将会严重降低应用程序的性能,甚至还会造成Web应用程序崩溃。
使用缓存是把访问频繁的数据以及需要大量处理时间来创建的数据存储在服务器内存中,当用户请求这些数据时,系统直接将内存中的数据返回给用户,从而大大提高应用程序的性能。
2、 整页缓存的主要属性P85
Duration:必需属性,表示缓存时间
VaryByParam:参数传递的缓存
VaryByControl:用户控件的缓存
Location:指定输出缓存项的位置,默认为Any
VaryBycustom:自定义输出缓存
3、 缓存的依赖性有哪些(数据缓存)
4、 如何实现部分页面缓存
最常用的方法是缓存后替换:
通过使用控件substitution实现,此控件可以用来替换缓存页面需要更新的部分。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xiangchengboy/archive/2009/11/05/4770320.aspx
【技巧】(转载)C#面试题
1、在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。
回答要点:说明详细的空间分配。(10分)
答:string str = null 是不给他分配内存空间,而string str = "" 给它分配长度为空字符串的内存空间.

2、请详述在dotnet中类(class)与结构(struct)的异同:(10分)
答:Class可以被实例化,属于引用类型,是分配在内存的堆上的,Struct属于值类型,是分配在内存的栈上的.

3、根据委托(delegate)的知识,请完成以下用户控件中代码片段的填写:(10)
namespace test
{
public delegate void OnDBOperate();

public class UserControlBase : System.Windows.Forms.UserControl

{

public event OnDBOperate OnNew;
privatevoidtoolBar_ButtonClick(objectsender,System.Windows.Forms.ToolBarButtonClickEventArgs e)

{

if(e.Button.Equals(BtnNew))

{
//请在以下补齐代码用来调用OnDBOperate委托签名的OnNew事件。

}

}

}

答:if( OnNew != null )
OnNew( this, e );

4、分析以下代码,完成填空(10分)
string strTmp = "abcdefg某某某";
int i= System.Text.Encoding.Default.GetBytes(strTmp).Length;
int j= strTmp.Length;
以上代码执行完后,i= j=

答:i=13,j=10

5、SQLSERVER服务器中,给定表 table1 中有两个字段 ID、LastUpdateDate,ID表示更新的事务号, LastUpdateDate表示更新时的服务器时间,请使用一句SQL语句获得最后更新的事务号。(10)

答:Select ID FROM table1 Where LastUpdateDate = (Select MAX(LastUpdateDate) FROM table1)

6、根据线程安全的相关知识,分析以下代码,当调用test方法时i>10时是否会引起死锁?并简要说明理由。(10分)

public void test(int i)

{
lock(this)
{
if (i>10)

{

i--;

test(i);

}

}

}

答:不会发生死锁,(但有一点int是按值传递的,所以每次改变的都只是一个副本,因此不会出现死锁。但如果把int换做一个object,那么死锁会发生)

7、分析以下代码。(10)
public static void test(string ConnectString)

{

System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = ConnectString;
try

{
conn.Open();
…….
}
catch(Exception Ex)
{
MessageBox.Show(Ex.ToString());
}
finally
{

if (!conn.State.Equals(ConnectionState.Closed))
conn.Close();
}
}
请问

1)以上代码可以正确使用连接池吗?

答:回答:如果传入的connectionString是一模一样的话,可以正确使用连接池。不过一模一样的意思是,连字符的空格数,顺序完全一致。

2)以上代码所使用的异常处理方法,是否所有在test方法内的异常都可以被捕捉并显示出来?

答:只可以捕捉数据库连接中的异常吧. (finally中,catch中,如果有别的可能引发异常的操作,也应该用try,catch。所以理论上并非所有异常都会被捕捉。)

8、简要谈一下您对微软.NET 构架下remoting和webservice两项技术的理解以及实际中的应用。(10)

答:WS主要是可利用HTTP,穿透防火墙。而Remoting可以利用TCP/IP,二进制传送提高效率。

9、公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行 (排序的方式如DataGrid相似)。根据您的知识,请简要谈一下您的思路:(10)

答:根据点击的列头,包该列的ID取出,按照该ID排序后,在给绑定到ListView中

10、给定以下XML文件,完成算法流程图。(10)

<FileSystem>
< DriverC >
<Dir DirName=”MSDOS622”>
<File FileName =” Command.com” ></File>
</Dir>
<File FileName =”MSDOS.SYS” ></File>
<File FileName =” IO.SYS” ></File>
</DriverC>
</FileSystem>

请画出遍历所有文件名(FileName)的流程图(请使用递归算法)。

答:
void FindFile( Directory d )
{
FileOrFolders = d.GetFileOrFolders();
foreach( FileOrFolder fof in FileOrFolders )
{
if( fof is File )
You Found a file;
else if ( fof is Directory )
FindFile( fof );
}

}

简单的说就是从根节点开始遍历找子节点,在从找到的子节点找它的子节点,一层层下去

相关回复

一、选择填空题(每空2分,共60分)
1.在对SQL Server 数据库操作时应选用()。
a)SQL Server .NET Framework 数据提供程序;
b)OLE DB .NET Framework 数据提供程序;
c)ODBC .NET Framework 数据提供程序;
d)Oracle .NET Framework数据提供程序;
2.下列选项中,()是引用类型。
a)enum类型
b)struct类型
c)string类型
d)int类型
3.关于ASP.NET中的代码隐藏文件的描述正确的是()
a)Web窗体页的程序的逻辑由代码组成,这些代码的创建用于与窗体交互。编程逻辑唯一与用户界面不同的文件中。该文件称作为“代码隐藏”文件,如果用C#创建,该文件将具有“.ascx.cs”扩展名。
b)项目中所有Web窗体页的代码隐藏文件都被编译成.EXE文件。
c)项目中所有的Web窗体页的代码隐藏文件都被编译成项目动态链接库(.dll)文件。
d)以上都不正确。
4.以下描述错误的是()
a)在C++中支持抽象类而在C#中不支持抽象类。
b)C++中可在头文件中声明类的成员而在CPP文件中定义类的成员,在C#中没有头文件并且在同一处声明和定义类的成员。
c)在C#中可使用 new 修饰符显式隐藏从基类继承的成员。
d)在C#中要在派生类中重新定义基类的虚函数必须在前面加Override。
5.C#的数据类型有()
a)值类型和调用类型;
b)值类型和引用类型;
c)引用类型和关系类型;
d)关系类型和调用类型;
6.下列描述错误的是()
a)类不可以多重继承而接口可以;
b)抽象类自身可以定义成员而接口不可以;
c)抽象类和接口都不能被实例化;
d)一个类可以有多个基类和多个基接口;
7.在DOM中,装载一个XML文档的方法()
a)save方法
b)load方法
c)loadXML方法
d)send方法
8.下列关于构造函数的描述正确的是()
a)构造函数可以声明返回类型。
b)构造函数不可以用private修饰
c)构造函数必须与类名相同
d)构造函数不能带参数
9.以下是一些C#中的枚举型的定义,其中错误的用法有()
a)public enum var1{ Mike = 100, Nike = 102, Jike }
b)public enum var1{ Mike = 100, Nike, Jike }
c)public enum var1{ Mike=-1 , Nike, Jike }
d)public enum var1{ Mike , Nike , Jike }
10.int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[2][2]的值是()。
a)9
b)2
c)6
d)越界
11.接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。
a)方法、属性、索引器和事件;
b)方法、属性信息、属性;
c)索引器和字段;
d)事件和字段;
12.ASP.NET框架中,服务器控件是为配合Web表单工作而专门设计的。服务器控件有两种类型,它们是( )
a)HTML控件和Web控件
b)HTML控件和XML控件
c)XML控件和Web控件
d)HTML控件和IIS控件
13.ASP.NET中,在Web窗体页上注册一个用户控件,指定该控件的名称为”Mike”,正确的注册指令为( )
a)<%@Register TagPrefix = “Mike” TagName = “Space2” Src = “myX.ascx”%>
b)<%@Register TagPrefix = “Space2” TagName = “Mike” Src = “myX.ascx”%>
c)<%@Register TagPrefix = “SpaceX” TagName = “Space2” Src = “Mike”%>
d)以上皆非
14.在ADO.NET中,对于Command对象的ExecuteNonQuery()方法和ExecuteReader()方法,下面叙述错误的是()。
a)insert、update、delete等操作的Sql语句主要用ExecuteNonQuery()方法来执行;
b)ExecuteNonQuery()方法返回执行Sql语句所影响的行数。
c)Select操作的Sql语句只能由ExecuteReader()方法来执行;
d)ExecuteReader()方法返回一个DataReder对象;
15.下列ASP.NET语句(b)正确地创建了一个与SQL Server 2000数据库的连接。
a)SqlConnection con1 = new Connection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
b)SqlConnection con1 = new SqlConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
c)SqlConnection con1 = new SqlConnection(Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB);
d)SqlConnection con1 = new OleDbConnection(“Data Source = localhost; Integrated Security = SSPI; Initial Catalog = myDB”);
16.Winform中,关于ToolBar控件的属性和事件的描述不正确的是()。
a)Buttons属性表示ToolBar控件的所有工具栏按钮
b)ButtonSize属性表示ToolBar控件上的工具栏按钮的大小,如高度和宽度
c)DropDownArrows属性表明工具栏按钮(该按钮有一列值需要以下拉方式显示)旁边是否显示下箭头键
d)ButtonClick事件在用户单击工具栏任何地方时都会触发
17.在ADO.NET中执行一个存储过程时,如果要设置输出参数则必须同时设置参数的方向和( ),必要时还要设置参数尺寸。
a)大小;
b)上限;
c)初始值;
d)类型;
18.如果将窗体的FormBoderStyle设置为None,则( )。
a)窗体没有边框并不能调整大小;
b)窗体没有边框但能调整大小;
c)窗体有边框但不能调整大小;
d)窗体是透明的;
19.如果要将窗体设置为透明的,则( )
a)要将FormBoderStyle属性设置为None;
b)要将Opacity属性设置为小于100%得值;
c)要将locked 属性设置为True;
d)要将 Enabled属性设置为True;
20.下列关于C#中索引器理解正确的是( )
a)索引器的参数必须是两个或两个以上
b)索引器的参数类型必须是整数型
c)索引器没有名字
d)以上皆非
21.下面描述错误的是( )。
a)窗体也是控件;
b)窗体也是类;
c)控件是从窗体继承来的;
d)窗体的父类是控件类;
22.要对注册表进行操作则必须包含( )。
a)System.ComponentModel命名空间;
b)System.Collections命名空间;
c)System.Threading命名空间;
d)Microsoft.Win32命名空间;
23.要创建多文档应用程序,需要将窗体的( )属性设为true。
a)DrawGrid;
b)ShowInTaskbar;
c)Enabled;
d)IsMdiContainer;
24.如果设treeView1=new TreeView(),则treeView1.Nodes.Add("根节点")返回的是一个 ()类型的值。
a)TreeNode;
b)int;
c)string;
d)TreeView;
25.下面关于XML的描述错误的是()。
a)XML提供一种描述结构化数据的方法;
b)XML 是一种简单、与平台无关并被广泛采用的标准;
c)XML文档可承载各种信息;
d)XML只是为了生成结构化文档;

1. C#中 property 与 attribute的区别,他们各有什么用处,这种机制的好处在哪里?
2. 讲一讲你理解的web service,在dot net framework中,怎么很好的结合xml?(讲概念就行了)
3. C#, Java 和 c++的特点,有什么相同的地方,不同的地方,C#分别从c++和java中吸取了他们那些优点?
4. C#可否对内存进行直接的操作?(这可是个难点哦?要注意!)
5. 用Visual C++ 6.0编写的代码(unmanaged code),如何在CLR下和其他dot net component结合?
6. 以前作过的一些项目?介绍一下自己的编程经验。(这是蒙混不过去的,基本一问就知道是真是假)
7. 你对公司有什么期望?你的薪水期望值?为什么学计算机?以前的工作经验(这非常重要)?

Q3: 维护数据库的完整性、一致性、你喜欢用触发器还是自写业务逻辑?为什么
Q4:ADO。NET相对于ADO等主要有什么改进?
Q5:ASP。NET与ASP相比,主要有哪些进步?
Q6:C#中的委托是什么?事件是不是一种委托?
Q7:描述一下C#中索引器的实现过程,是否只能根据数字进行索引?
Q8:C#中要使一个类支持FOREACH遍历,实现过程怎样?
Q10:写一个HTML页面,实现以下功能,左键点击页面时显示“您好”,右键点击时显示“禁止右键”。并在2分钟后自动关闭页面。
Q11:你对XMLHTTP、WEBSERVICE 了解吗?简单描述其特点、作用
Q12:接口和抽象类有什么区别?你选择使用接口和抽象类的依据是什么?
Q13:自定义控件和一般用户控件的异同?如果要用这两者之一,你会选择哪种?为什么
Q14:大概描述一下ASP。NET服务器控件的生命周期
Q15:UML
Q16:面向对象的概念,主要特点
Q17:类划分的依据。类粒度问题
Q18:事物管理问题

第一,谈谈final, finally, finalize的区别。
第二,Anonymous Inner Class (匿名内部类) 是否可以extends(继承)其它类,是否可以implements(实现)interface(接口)?
第三,Static Nested Class 和 Inner Class的不同,说得越多越好(面试题有的很笼统)。
第四,&和&&的区别。
第五,HashMap和Hashtable的区别。
第六,Collection 和 Collections的区别。
第七,什么时候用assert。
第八,GC是什么? 为什么要有GC?
第九,String s = new String("xyz");创建了几个String Object?
第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
第十一,short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
第十二,sleep() 和 wait() 有什么区别?
第十三,Java有没有goto?
第十四,数组有没有length()这个方法? String有没有length()这个方法?
第十五,Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
第十六,Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
第十七,给我一个你最常见到的runtime exception。
第十八,error和exception有什么区别?
第十九,List, Set, Map是否继承自Collection接口?
第二十,abstract class和interface有什么区别?
第二十一,abstract的method是否可同时是static,是否可同时是native,是否可同时是synchronized?
第二十二,接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
第二十三,启动一个线程是用run()还是start()?
第二十四,构造器Constructor是否可被override?
第二十五,是否可以继承String类?
第二十六,当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法?
第二十七,try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
第二十八,编程题: 用最有效率的方法算出2乘以8等於几?
第二十九,两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
第三十,当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
第三十二,编程题: 写一个Singleton出来。

数据库方面:

1.存储过程和函数的区别
2.事务是什么?
3.游标的作用?如何知道游标已经到了最后?
4.触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。

1。用C#实现以下功能
a 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
b 对上面生成的数组排序,需要支持升序、降序两种顺序
2。请说明在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。
3。请说明.net中的错误处理机制,并举例
4。请说出强名的含义
5。请列出c#中几种循环的方法,并指出他们的不同
6。请指出.net中所有类型的基类
7。请指出GAC的含义
8。SQL SREVER中,向一个表中插入了新数据,如何快捷的得到自增量字段的当前值

您在什么情况下会用到虚方法?它与接口有什么不同?
Q:Override与重载有什么区别?
Q:值类型与引用类型有什么区别?
Q:怎样理解静态变量?
Q:向服务器发送请求有几种方式?
Q:DataReader与Dataset有什么区别?
Q:如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?
Q:用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层?
Q:软件开发过程一般有几个阶段?每个阶段的作用?
Q:微软推出了一系列的Application Block,请举出您所知道的Application Block并说明其作用?
Q:请列举一些您用到过的设计模式以及在什么情况下使用该模式?
Q:您对WebService的体会?
Q:您对编程的兴趣如何?工作中遇到不懂的问题是怎样去解决的?您一般怎样去提高自己的编程水平?
Q:您离职的原因是什么?
Q:通过超链接怎样传递中文参数?
Q:请编程遍历页面上所有TextBox控件并给它赋值为string.Empty?
Q:请编程实现一个冒泡排序算法?

1、override与重载的区别
2、.net的错误处理机制是什么
3、C#中接口和类的异同
4、DataReader和DataSet的异同

1.有哪几种方法可以实现一个类存取另外一个类的成员函数及属性,并请举列来加以说明和分析.
2.如果需记录类的实例个数,该如何实现,请写一个简单的类于以证明.
3.A类是B类的基类,并且都有自己的构造,析构函数,请举例证明B类从实例化到消亡过程中构造,析构函数的执行过程.
4.需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.

一.填空题
1.c#中的三元运算符是__?:___?
2.当整数a赋值给一个object对象时,整数a将会被__装箱(封装)___?
3.类成员有_____种可访问形式? this.;new Class().Method;
4.public static const int A=1;这段代码有错误么?是什么? const不能用static修饰
5.float f=-123.567F;
int i=(int)f;
i的值现在是_____? 123
6.利用operator声明且仅声明了“==”,有什么错误么?
7.委托声明的关键字是______? delagete
8.用sealed修饰的类有什么特点?密封,不能继承
9.在Asp.net中所有的自定义用户控件都必须继承自________?Control
10.在.Net中所有可序列化的类都被标记为_____?
11.在.Net托管代码中我们不用担心内存漏洞,这是因为有了______?gc
12.下面的代码中有什么错误吗?_______
using System;
class A
{
public virtual void F(){
Console.WriteLine("A.F");
}
}
abstract class B:A
{
public abstract override void F(); // new public abstract void F();
}

13.当类T只声明了私有实例构造函数时,则在T的程序文本外部,___可以___(可以 or 不可以)从T派生出新的类,不可以____(可以 or 不可以)直接创建T的任何实例。
14.下面这段代码有错误么?
switch (i){
case():
CaseZero();
break;
case 1:
CaseOne();
break;
case 2:
dufault; //wrong
CaseTwo();
break;
}
15.在.Net中,类System.Web.UI.Page 可以被继承么?可以

二.简答题
1.在c#中using和new这两个关键字有什么意义,请写出你所知道的意义?using 指令 和语句 new 创建实例 new 隐藏基类中方法
4.谈谈类和结构的区别?类是引用类型、结构是值类型
5.一个长度为10000的字符串,通过随机从a-z中抽取10000个字符组成。请用c#语言编写主要程序来实现。
6.对于这样的一个枚举类型:
enum Color:byte{
Red,
Green,
Blue,
Orange
}
string[] ss=Enum.GetNames(typeof(Color));
byte[] bb=Enum.GetValues(typeof(Color));
试写一段程序显示出枚举类型中定义的所有符号名称以及它们对应的数值。
7.您了解设计模式么?请列出您所知道的设计模式的名称。 //
8.请在SQL Server中设计表来保存一个树状结构的组织结构图(假设结构图中只有名称这一项内容需要保存),如果我想查询某一职位下的所有职位,用一个存储过程来实现,你有什么思路?
9.什么叫做SQL注入,如何防止?请举例说明。
10.下面这段代码输出什么?为什么?
int i=5;
int j=5;
if (Object.ReferenceEquals(i,j))
Console.WriteLine("Equal");
else
Console.WriteLine("Not Equal");
//不相等,因为比较的是对象

1.写一个实现对一段字符串翻转的方法,附加一些条件,如其中包括“,”、“.”,对其设计测试用 例 。
2.对一支纸杯设计测试用例(可以是广义的杯,不一定是某一支特定功能的杯)
开发语言概念题
3.什么是反射?
4.用Singleton如何写设计模式
5.C#中的垃圾回收机制是怎样的?
6.什么是Application Pool?
7.链表和数组的区别,各有什么优缺点.
8.Remoting在客户端服务器怎么实现 ?
9.什么是友元函数?
10.用标准C如何实现多态?
11.什么是虚函数?
12.什么是抽象函数?
13.什么是内存泄漏,怎样最简单的方法判断被存泄漏 ?

英语题
14.用英文介绍一下使用C#/C++做的项目,主要功能
15.如果要与美国开电话会议,会如何与美国的工程师沟通
16.如果老板认为你的技术落后,你会怎么回答

数据库知识题
17.使用什么工具来调用存储过程
18.SQL Server的两种索引是何形式?索引的作用?索引的优缺点?
19.触发器的作用

其它知识题及问题
20.什么是Web Service?
21.什么是XML?
22.Socket怎么实现?

c# 面试题及部分答案相关推荐

  1. 计算机英语考试试题一附答案,计算机英语考试试题一附答案

    计算机英语考试试题一附答案 ================精选公文范文,管理类,工作总结类,工作计划类文档,欢迎阅读下载============== 计算机英语考试试题一附答案 计算机英语考试试题一 ...

  2. 用友公司Java面试题(含答案)

    为什么80%的码农都做不了架构师?>>>    用友公司Java面试题(含答案) 1.Hashtable和HashMap有什么区别?   a.Hashtable是继承自陈旧的Dict ...

  3. 软考新思维--2017年上半年信息系统项目管理师上午试题分析与答案(试题16-20题)...

    2017年上半年信息系统项目管理师上午试题分析与答案(试题16-20题) 16.信息系统的安全威胁分成七类,其中不包括() A.自然事件风险和人为事件风险 B.软件系统风险和软件过程风险 C.项目管理 ...

  4. Java面试题汇总及答案2021最新(序列化含答案)

    Java面试题汇总及答案2021最新(序列化含答案) 为大家整理了2021最新的Java面试题及答案下载,这套Java面试题总汇已经汇总了Java基础面试到高级Java面试题,几乎涵盖了作为一个Jav ...

  5. Java面试题汇总及答案2021最新(ioNio)

    Java面试题汇总及答案2021最新(io&Nio) 最近给大家整理了一批Java关于io和nio的面试题一共15题,是20201最新时间整理的,并且都含答案打包下载. 适宜阅读人群 需要面试 ...

  6. 常见Jvm面试题总结及答案整理 120道(持续更新)

    最新Jvm面试题总结及答案[附答案解析]Jvm面试题及答案2021,Jvm面试题最新面试题,Jvm面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的.这些答案难免会存在一 ...

  7. 110道 Jvm面试题总结及答案 (持续更新)

    最新Jvm面试题总结及答案[附答案解析]Jvm面试题及答案2021,Jvm面试题最新面试题,Jvm面试题新答案已经全部更新完了,有些答案是自己总结的,也有些答案是在网上搜集整理的.这些答案难免会存在一 ...

  8. Java面试题大全带答案 110道(持续更新)

    本人发现网上虽然有不少Java面试题大全带答案,但第一未必全,第二未必有答案,第三虽然有答案,但未必能在面试中说,所以在本文里,会不断收集各种面试题,并站在面试官的立场上,给出我自己的答案 如果不背 ...

  9. J2EE面试题集锦(附答案)

    转自:http://blog.sina.com.cn/s/blog_4e8be0590100fbb8.html J2EE面试题集锦(附答案) 一.基础问答 1.下面哪些类可以被继承? java.lan ...

  10. 计算机软件考试预测,2020年计算机软件水平考试信息技术处理员预测试题及参考答案...

    2020年计算机软件水平考试备考正在进行中,为了方便考生及时有效的备考,那么,小编为您精心整理了2020计算机软件水平考试<信息技术处理员>预测试题及参考答案,欢迎大家的关注.如想获取更多 ...

最新文章

  1. Acdream Xor 简单数学
  2. OC高效率52之理解OC错误模型
  3. 计算机竞赛作文,计算机打字比赛作文例文
  4. .NetCore中三种注入生命周期的思考
  5. ZBlog插件简洁轻巧的编辑器 iceEditor修复版
  6. c语言枚举法求满射函数,实变函数论讲义
  7. 检查Linux服务器性能的关键十条命令
  8. 网易云音乐数仓模型设计实践
  9. Android MPush开源消息推送系统:简洁、安全、支持集群
  10. 短信验证码功能(阿里云版)
  11. 旅游出行 APP 哪家强?
  12. vue第四天笔记02——axios请求
  13. Android应用开发自定义图片剪辑头像设置
  14. python去除重复单词_Python重复的单词
  15. 【用户价值分析 RFM模型】用户价值分析
  16. 开发人员与测试人员关系的理解
  17. memset()函数怎么用?
  18. average and standard deviation-平均数和标准差
  19. TCL液晶电视换灯条的经历
  20. CM-BERT: Cross-Modal BERT for Text-Audio Sentiment Analysis--文献笔记和翻译

热门文章

  1. 人工智能——阿尔法元
  2. cad2016中选择全图字体怎么操作_ps创意字体设计教程:ps怎么做海报漂亮字体
  3. 成都Java开发前景怎么样
  4. python莱布尼茨公式求π
  5. IDEA 中如何将项目打成war包
  6. 计算机普通话测试三分钟自述,普通话考试三分钟
  7. codeblocks shotcut
  8. 基于SSM的网上商城(中)
  9. 期权交易,这两个要点一定要掌握!
  10. 神州电脑安装docker for Windows