C#程序员面试(一)答案
2024-07-21 02:18:51
供稿:网友
前提:状态栏面板sbpfilepath已经设定为自绘样式.当有如下代码段1被执行一次以后:
代码段1:
private void treeviewarchives_afterselect(object sender, system.windows.forms.treevieweventargs e)
{
if (e.node.text!= "" )
{
try
{this.richtexebox.loadfile(application.startuppath+e.node.text);
statusmessages=e.node.text;
sbpfilepath.text=statusmessages;//statusmessages表示字符串
}
catch
{messagebox.show("加载文件出错,无法显示!");
}
}
}
代码段2:
private void statusbar1_drawitem(object sender, system.windows.forms.statusbardrawitemeventargs sbdevent)
{// 绘制面板区域
sbdevent.graphics.fillrectangle(brushes.green, sbdevent.bounds);
//绘制面板上的文本
sbdevent.graphics.drawstring(statusmessages,sbdevent.font,brushes.white,sbdevent.bounds);
sbdevent.graphics.dispose();
}
考试题:
1、代码段2会不会被执行?
答案:会。
2、代码段2如果不会被执行,为什么?该如何修改?
答案:过。继续下一问题。
3、代码段2如果会得到执行,会不会被重复执行(即连续执行两次或更多次)?
答案:会。
4、代码段2如果被重复执行,该如何修改使之只运行一次就足够?
答案:代码段1可以修改为:
private void treeviewarchives_afterselect(object sender, system.windows.forms.treevieweventargs e)
{
if (e.node.text!= "" )
{
try
{
this.richtexebox.loadfile(application.startuppath+e.node.text);
statusmessages=e.node.text;
//将以下这一句注释掉,同时加上强制绘制的方法
//sbpfilepath.text=statusmessages;//statusmessages表示字符串
statusbar1.invalidate();
}
catch
{ messagebox.show("加载文件出错,无法显示!");
}
}
}
5、代码段2中 sbdevent.graphics.dispose();//这个语句是否可有可无,为什么?
答案:为尽可能释放资源,只要编译与运行过程中不出错,应当加上。
(如现场有争议,留下名单,让他回去测试,第二天带测试报告再来)
6、假设运行以下语句
{sbpfilepath.text=statusmessages;sbpfilepath.text=statusmessages;}
问题同上述1-3项,请再次回答。
答案:如果不修改代码段1,此语句段在第一次运行
sbpfilepath.text=statusmessages;
时,代码段2就被运行两次,此后,只要给sbpfilepath.text的值不变,
即statusmessages的值不变,则代码段2不会继续运行。
即:
{sbpfilepath.text=statusmessages;sbpfilepath.text=statusmessages;}
等效于
sbpfilepath.text=statusmessages;
7、您认为代码段1或者代码段2有没有错误?(如果您认为回答对了上面的问题,此问题可不必做答)
答案:语法没有错,但可以修改代码,减少重绘,节省资源。
8、有人认为c#开发出来的程序太慢,你怎么看待这个问题?你在编码过程中优先考虑以人为本、用户为上的思想吗?
请简述。
答案:一部分是实情,另外一部分在于很多人完全依赖自动垃圾回收,而没有考虑弱引用、dispose()、close()、
gc、等等,甚至有很多人忌讳try-catch-finally,导致夸大问题,c#开发的实质问题在于目前的跨平台方面。
公司研发部认为:如果java开发人员认为c#开发出来的程序太慢,肯定不是一个合格的java程序员,他写的代码肯定
性能低,耗费资源。如果经2次提醒后,他还坚持此观点,肯定是一个浮躁的人,忌用。
招聘过程中注意:不要试图引导应聘者比较语言的差异,不得发表带偏见性的语言观点,注意应聘者的情绪。
9、普遍认为以下几本书都是经典,如果你看过,请从里面挑任意一本书,指出该书中5处以上严重影响程序速度的代码段
或错误代码。(希望通过此题强调我公司的原则:程序员水平如何,是看他写的代码以及代码性能,不是看他学了多少,
也不看他的工龄)
答案:
资料上没有提供。
我信守承诺,暂时没有在其它网站公布更多题目。
而且绝对没有公布除此文以外的任何技术问题与答案。
一旦第3轮招聘结果公布,我将第一时间全部传到网上,
大家留意。
很多人都可以指教我,我会很珍惜有人指教的机会......