1. 程式人生 > >C#與名稱空間和索引器

C#與名稱空間和索引器

1、引用名稱空間的方法是利用using指令,使用格式如下:

using【別名=】名稱空間   或   using【別名=】名稱空間.成員

using mysn = System.Math;   //宣告名稱空間中某個類的別名

namespace 名稱空間
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(mysn.Sin(0.5));    //以別名為字首
            Console.ReadKey();
        }
    }
    
}

注:使用using System.Math是錯誤的,因為System.Math是一個類而不是名稱空間

2、在程式中宣告名稱空間Ns1,並定義物件:

namespace Ns1    //宣告
{
     class A{}
}

Ns1.A a=new Ns1.A();    //定義

索引器提供了一種訪問類或結構的方法,即允許按照和陣列相同的方式對類、結構或介面進行索引

宣告索引器,需要用到this關鍵字:

public int this[索引型別 index]

{

       //get和set訪問器

}

索引器使得物件可按照與陣列相似的方法進行索引

get 訪問器返回值。set

 訪問器分配值

this 關鍵字用於定義索引器

value 關鍵字用於定義由 set 索引器分配的值

namespace 所引器
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] value = { 2, 5, 8, 9 };   //定義一個數組
            int i = value[1];
            person p1 = new person();
            p1[1] = "哈哈";     //p1[1]賦值,呼叫set{}
            Console.WriteLine(p1[1]+p1[2]);   //p1[2]取值,呼叫get{}
            person p2 = new person();
            p2[1] = "嘻嘻";
            Console.WriteLine(p2[1]);
            Console.ReadKey();
        }
    }
    class person
    {
        private string name1 = "大貓";
        private string name2 = "二毛";

        public string this [int index]
        {
            set
            {
                if (index==1)
                {
                    name1 = value;
                }
                else if (index == 2)
                {
                    name2 = value;
                        
                }
                else
                {
                   throw new Exception("你是智障嗎");
                }
                
            }
            get
            {
                if (index == 1)
                {
                    return name1;

                }
                else if (index == 2)
                {
                    return name2;
                
                }
                else
                {
                    throw new Exception("你是傻逼嗎");
                }
            }
        }
    }
}

這兩天都很難受,現在在聽蔡健雅的《十萬毫升淚水》(>人<;)