C#學習系列-this的使用

若有錯誤,歡迎指正。數組

1.表明當前類,在當前類中可以使用this訪問當前類成員變量和方法(須要注意的是 靜態方法中不能使用this),也可用於參數傳遞,傳遞當前對象的引用。this

下面貼代碼:spa

    class Program
    {
        static void Main(string[] args)
        {
            thisClass testObj = new thisClass();
            Console.ReadLine();
        }
    }

    class thisClass
    {
        private string A { get; set; }
        public thisClass()
        {
            /*當前類this 訪問類中屬性A 靜態方法沒法訪問A屬性*/
            this.A = "Test String";
            Console.WriteLine(this.TestFun("TestFun :"));
        }
        private string TestFun(string args)
        {
            return args + this.A;
        }
    }

2.聲明索引器code

索引器:容許類和結構的實例按照與數組相同的方式進行索引,索引器相似與屬性,不一樣之處在於他們的訪問器採用參數,被稱爲有參屬性,索引能夠被重載,屬於實例成員,不能聲明爲static。對象

下面貼代碼:blog

    class Program { static void Main(string[] args) { indexClass intIndexClass = new indexClass(); intIndexClass[0] = new thisClass("intIndexClass 111"); intIndexClass[1] = new thisClass("intIndexClass 222"); indexClass stringIndexClass = new indexClass(); stringIndexClass["string1"] = new thisClass("stringIndexClass string1"); stringIndexClass["string2"] = new thisClass("stringIndexClass string2"); Console.ReadLine(); } } class indexClass { /*聲明屬性*/ private thisClass[] thisClassArr = new thisClass[10]; private Hashtable thisClassStrArr = new Hashtable(); /*建立索引器1 索引能夠被重載,屬於實例成員,不能聲明爲static*/ public thisClass this[int index] { get { return thisClassArr[index]; } set { this.thisClassArr[index] = value; } } /*建立索引器2*/ public thisClass this[string index] { get { return thisClassStrArr[index] as thisClass; } set { this.thisClassStrArr[index] = value; } } } class thisClass { private string A { get; set; } public thisClass(string str) { /*當前類this 訪問類中屬性A 靜態方法沒法訪問A屬性*/ this.A = str; Console.WriteLine(this.TestFun("TestFun :")); } private string TestFun(string args) { return args + this.A; } }

3.用於擴展方法索引

擴展方法的要素: 
1.此方法必須是一個靜態方法 
2.此方法必須放在靜態類中 
3.此方法的第一個參數必須以this開頭,而且指定此方法是擴展自哪一個類型get

public static string DateToString(this DateTime dt)
{
      return dt.ToString("yyyy-mm-dd hh:mm:ss");
} 

static void Main(string[] args)
{
      DateTime now = DateTime.Now; 
      string time = now.DateToString();
      Console.WriteLine(time);
      Console.ReadKey();
} 

 

 

 我看了好像就這麼多,其餘還有補充的沒?string

相關文章
相關標籤/搜索