前提:狀態列面板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輪招聘結果公布,我將第一時間全部傳到網上,
大家留意。
很多人都可以指教我,我會很珍惜有人指教的機會......