深入熟悉C# (待續)

來源:互聯網
上載者:User

有關於C#索引器,感覺用了索引器之後,就是可以避免用傳統的new執行個體點方法名的方式了
如:
    傳統: 
       DayCollection week = new DayCollection();
       System.Console.WriteLine(System.Convert.ToString(week.GetDay("Fri")));

 用了索引器之後
       DayCollection week = new DayCollection();
       System.Console.WriteLine(week["Fri"]);

// Using a string as an indexer valueclass DayCollection{string[] days = { "Sun", "Mon", "Tues", "Wed", "Thurs", "Fri", "Sat" };// This method finds the day or returns -1private int GetDay(string testDay){int i = 0;foreach (string day in days){if (day == testDay){return i;}i++;}return -1;}// The get accessor returns an integer for a given stringpublic int this[string day]{get{return (GetDay(day));}}}class Program{static void Main(string[] args){DayCollection week = new DayCollection();System.Console.WriteLine(week["Fri"]);System.Console.WriteLine(week["Made-up Day"]);}}
-----------------------------------------------------------------
New 修飾符:
使用 new 修飾符顯式隱藏從基類繼承的成員。若要隱藏繼承的成員,
請使用相同名稱在衍生類別中聲明該成員,並用 new 修飾符修飾它。
public class MyBaseC{public int x;public void Invoke() {}}

在衍生類別中用 Invoke 名稱聲明成員會隱藏基類中的 Invoke 方法,即:

public class MyDerivedC : MyBaseC{new public void Invoke() {}}
但是,因為欄位 x 不是通過類似名隱藏的,所以不會影響該欄位。
 
在同一成員上同時使用 new 和 override 是錯誤的。
 
-----------------------------------------------------------------
server.Transfer方法提供了跨頁面提交的支援。
1.在頁面1中設定要跨頁提交的屬性
2.當單擊按鈕的時候,資料從頁面1提交到頁面2
3.頁面2接收頁面1所有的ViewState
4.如果PreviousPage可以訪問,則為頁面1從新提供一個執行個體
5.頁面1從新進行初始化操作
6.此時頁面2才可以訪問頁面1中的資料
有些情況下,應用程式需要在頁回傳至伺服器後仍保留它在瀏覽器中的位置。
ex:
    如果資料項目導致大型頁回傳,則終端使用者需要將頁滾動到此前正在編輯它們的位置,才能繼續。
頁開發人員通過以下方法可以簡單地標記表單,
以維持滾動位置:
在@Page指令中將MaintainScrollPositionOnPostBack屬性設定為true,
或在web.config中進行此設定,以應用於應用程式中的所有頁。
 
MaintainScrollPositionOnPostBack  
                               就是在重新整理頁面之後保持當前瀏覽內容的位置。
 
用於控制項的一個令人驚喜的新功能是“用戶端回調”,
該功能允許控制項向伺服器執行帶外請求以擷取附加資料,而不發送整頁。
此功能依賴於用於回調處理(通常通xmlhttp)的瀏覽器支援,
該支援由SupportsClientCallBacks在瀏覽器功能中指定情況下,
頁自身將實現ICallbackEventHandler介面,以用於示範用途。

------------------------------------------------------------------------------------internal:
     內部成員只有在同一程式集中的檔案內才是可訪問的,
       內部訪問通常用於基於組件的開發,因為它使一組組件能夠以私人方式進行合作,
       而不必嚮應用程式碼的其餘部分公開.
   * 儘管不能用 C# 重寫 internal virtual 方法,但可以用某些語言(如使用 Ilasm.exe 的文本 Microsoft 中繼語言 (MSIL) 重寫它。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.