C#程式員面試 答案 __c#

來源:互聯網
上載者:User
前提:狀態列面板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輪招聘結果公布,我將第一時間全部傳到網上,
大家留意。

很多人都可以指教我,我會很珍惜有人指教的機會......

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.