程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> C#程序員面試(一)答案

C#程序員面試(一)答案

編輯:.NET實例教程
前提:狀態欄面板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有沒有錯誤?(如果您認為回答對了上面的問題,此問題可不必做答)
答案:語法沒有錯,但可以修改代碼,減少重繪,節省資源。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved