设为首页 加入收藏

TOP

新编C#面试题(三)
2014-11-24 01:37:50 来源: 作者: 【 】 浏览:48
Tags:新编 试题
,在作用域过后会自动调用该对象的Dispose方法。


new :


A. 新建实例


B. 覆盖父类方法


C. 对泛型类型进行约束,规定该类型必须具有无参的公共构造函数


37. 需要实现对一个字符串的处理,首先将该字符串首尾的空格去掉,如果字符串中间还有连续空格的话,仅保留一个空格,即允许字符串中间有多个空格,但连续的空格数不可超过一个.


答:string inputStr=” xx xx “;


inputStr=inputStr.Trim();


inputStr=Regex.Replace(inputStr.Trim(),” {2,}”,” “);


注:Replace的第二个参数的”{2,}”前有一个空格,第三个参数是一个空格,表示,出现了2个或多个空格时将其替换成1个空格。


38. 下面这段代码输出什么?为什么?


int i=5;


int j=5;


if (Object.ReferenceEquals(i,j))


Console.WriteLine(“Equal”);


else


Console.WriteLine(“Not Equal”);


答:不相等,因为比较的是装箱后堆中的地址;


39. 什么叫做SQL注入,如何防止?请举例说明。


答:利用sql语言漏洞获得合法身份登陆系统。如身份验证的程序设计成:


SqlCommand com=new SqlCommand(“Select * from users where username=’”+t_name.text+”‘ and pwd=’”+t_pwd.text+”‘”);


object obj=com.ExcuteScale();


if(obj!=null)


{


//通过验证


}


这段代码容易被sql注入。如用户在t_name中随便输入,在t_pwd中输入abc’ or ‘1’=’1 就可以进入系统了。可以使用参数方式解决这个问题。


40. 什么是反射?


答:动态获取程序集、类型等的信息,并可根据这些信息动态的加载程序集、创建类型、动态调用方法,访问类型的成员等。


41. 如何写Singleton设计模式


答:static属性里面new ,构造函数private


public class Singleton


{


private static Singleton singleton;


private Singleton()


{


}


public static Singleton CreateInstance()


{


if(singleton==null)


singleton=new Singleton();


return singleton;


}


}


43. 什么是虚函数?什么是抽像函数?


答:虚函数:可由子类继承并重写的函数。抽像函数:规定其非虚子类必须实现的函数,必须被重写。


45. 什么是ASP.net中的用户控件?


答:用户控件一般用在内容多为静态,或者少许会改变的情况下..用的比较大..类似ASP中的include..但是功能要强大的多。


46. 列举一下你所了解的XML技术及其应用


答:xml用于配置,用于保存静态数据类型.接触XML最多的是web Services..和config


47. ADO.net中常用的对象有哪些?分别描述一下。


答:Connection 数据库连接对像


Command 数据库命令


DataReader 数据读取器


DataAdapterf 数据适配器,用于填充DataSet


DataSet 数据集


1. 传入某个属性的set方法的隐含参数的名称是什么?


value,它的类型和属性所声名的类型相同。


2. 如何在C#中实现继承?


在类名后加上一个冒号,再加上基类的名称。


3. C#支持多重继承么?


不支持。可以用接口来实现。


4. 被protected修饰的属性/方法在何处可以访问?


在继承或间接继承与这个类的子类中可以访问。


5. 私有成员会被继承么?


会,但是不能被访问。所以看上去他们似乎是不能被继承的,但实际上确实被继承了。


6. 请描述一下修饰符protected internal。


被protected internal修饰的属性/方法只能在它的在同一个程序集(Assembly)中的子类被访问。


7. C#提供一个默认的无参数构造函数,当我实现了另外一个有一个参数的构造函数时候,还想保留这个无参数的构造函数。这样我应该写几个构造函数?


两个,一旦你实现了一个构造函数,C#就不会再提供默认的构造函数了,所以需要手动实现那个无参数构造函数。


8. C#中所有对象共同的基类是什么?


System.Object.


9. 重载和覆写有什么区别?


重载提供了对一个方法签名的不同参数调用的实现。覆写提供了子类中改变父类方法行为的实现。


10. 在方法定义中,virtual有什么含意?


被virtual修饰的方法可以被子类覆写。


11. 能够将非静态的方法覆写成静态方法么?


不能,覆写方法的签名必须与被覆写方法的签名保持一致,除了将virtual改为override。


12. 可以覆写私有的虚方法么?


不可以,甚至子类中无法访问父类中的私有方法。


13. 能够阻止某一个类被其他类继承么?


可以,使用关键字sealed。


14. 能够实现允许某个类被继承,但不允许其中的某个方法被覆写么?


可以,标记这个类为public,并标记这个方法为sealed。


15. 什么是抽象类(abstract class)?


一种不可以被实例化的类。抽象类中一般含有抽象方法,当然也可有具体实现。继承类只有实现过所有抽象类的抽象方法后才能被实例化。


16. 何时必须声明一个类为抽象类?


当这个类中包含抽象方法时,或是该类并没有完全实现父类的抽象方法时。


17. 接口(interface)是什么?


只含有共有抽象方法(public abstract method)的类。这些方法必须在子类中被实现。


18. 为什么不能指定接口中方法的修饰符?


接口中的方法用来定义对象之间通信的契约,指定接口中的方法为私有或保护没有意义。他们默认为公有方法。


19. 可以继承多个接口么?


当然。


20. 那么如果这些接口中有重复的方法名称呢?


这种情况中你可以决定如何实现。当然需要特别得小心。但是在编译环节是没有问题的。


21. 接口和抽象类的区别是什么?


接口中所有方法必须是抽象的,并且不能指定方法的访问修饰符。抽象类中可以有方法的实现,也可以指定方法的访问修饰符。


22. 如何区别重载方法?


不同的参数类型,不同的参数个数,不同的参数顺序。


6. 如果在一个B/S结构的系统中需要传递变量值,但是又不能使用Session、Cookie、Application,您有几种方法进行处理?


答:this.Server.Transfer


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. 请编程实现一个冒泡排序算法?


答: void BubbleSort(SeqList R)


{ //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序


int i,j;


Boolean exchange; //交换标志


for(i=

首页 上一页 1 2 3 4 5 6 下一页 尾页 3/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Interview questions for C# deve.. 下一篇C#面试常见问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: