基本的c#知識

微軟的實例教材中講了三種語言:c#、vb   、Jscript,爲了讓大家過一把新東西隱,我們還是學c#吧。這個最好有一點c++基礎。    
  不過沒有也沒有關係,大不了多費點力了。    
  任何一門語言都有兩部分:    
  數據+語法+算法    
  數據是用來表示信息的,語法是來控制的。算法說白了就是人們總結的一些解決問題的思維方式。到於數據吧,多了自然有數據結構了,然後就出來了什麼查詢、插入、修改什麼的。        
  1.存儲數據當然要用到變量了,現在就來講一下c#的申明方法!    
  通常方法是:        
        類型+變量名        
  int   x         //定義一個整形變量    
  string   name,pwd;     //定義兩個字符性變量    
  object   x;       //定義一下對象    
  object   obj=new   object();//基於某一個對象創建一個實例    
  public   string   x;//給字符變量加一個類型修飾符,讓所有用戶均能訪問        
  說明一下:    
  在申明變量時,對類型單詞象int   string   object   都要用小寫,因爲c#是嚴格區分大小寫的.用INT   x;定義變量就錯了。    
  我們還是來兩個程序看看:    
  /*   學會變量的申明方法      
      create   by   vagrant     */    
    using   System;    
    class   Test    
    {     static   void   Main()    
      {   int   x=3;    
          Console.WriteLine("x={0}",x);    
          string   name="vagrant";    
          string   pwd="197926";    
          Console.WriteLine("your   name   is   :{0};pwd   is   {1}",name,pwd);    
          object   y;    
          y=x;//顯式轉換    
          Console.WriteLine("y={0}",y);    
      }    
    }       
  2.向瀏覽器發送字符:    
  上面講到的是在C#中用System.Console.WriteLine輸出變量的值,但在ASP.NET還是要用到Response對象的Response.Write("char")方法,不過此時不可省掉括號.    
  例:    
        <%@   language="C#"   %>    
        <%   string   name;    
        name="vagrant";    
        Response.Write("you   name   is   "+name);    
        %>        
  3.訪問索引屬性的值(以表單中元素爲例)    
      學過asp的朋友都知用Requst.Form("對象名")提取表單對象的值.但是在asp.net應用Request.QueryString["name"]提取.        
  4.申明索引屬性    
  在asp.net中我們要學會事件編程概念與索引指示器。通過索引指示器我們可以象數組那樣訪問類的數據信息的方法。還是我們先來構造一個簡單的例子:    
  using   System;    
  class   Team    
  {            
  string[]   s_name=new   string[3]{"vagrant","jack","rose"};//定義類的一個域,然後寫構造子函數,使得外類能通過索引訪問     
      public   string   this[int   nIndex]//訪問索引申明    
  {    
  get   {    
  return   s_name[nIndex];//提供外類讀的權力    
          }    
          set   {    
            s_name[nIndex]=value;//提供外類寫的權力    
          }    
  }    
  }    
  class   Test    
  {    
  public   static   void   Main(){    
                  Team   t1=new   Team();//創建一個Team類的實例    
          for(int   i=0;i<3;i++)    
      Console.WriteLine(t1[i]);//通過索引指示器訪問實例的數據信息    
            }    
  }    
  5.定義並初始化數據    
    當我們在處理批量數據常用到數組,定義數組要考慮到三個問題:類型,數據名,維數    
  我還是以一維數據來說吧,畢竟常用的就是一維數據。    
  定義數組:    
  string   studentname[]=new   string[50];    
  初始化:    
    方法一.    
        studentname[0]="vagrant";    
                studentname[1]="jack";    
                ........    
        方法二.    
            int[]   sex=new   int[2]{0,1};//0代表男,1代表女        
  這很好理解我就不解釋了。        
  6.結構與枚舉    
   我之所以把結構與枚舉放在一起來講是因爲這兩者有相似之處又有不同之處。    
      結構:一系列相關的信息組成單一實體。象通訊錄通常包括:姓名、電話、地址等。    
      枚舉:邏輯上密不可分的一系列數據。比方星期有一到七。但星期一到星期天邏輯上密不可分。    
  這兩者是有不同的,結構是數據集合,而枚舉每次只能取其中一個。結構與枚舉都是數據結構類型中的一種。    
  定義結構數據類型:    
              struct   PhoneBook     {    
                          public   string   name;    
                          public   string   phone;    
                          public   string   address;    
  }    
  定義一個該結構類型的變量    
        PhoneBook     p1;    
  給結構變量各個成員賦值    
        p1.name="vagrant";    
        p1.phone="88888888";    
        p1.address="wuhan";        
  定義枚舉數據類型,並賦值    
  //定義一個枚舉類型    
  public   enum   MessageSize   {      
          Small   =   0,    
          Medium   =   1,    
          Large   =   2    
  }       
  //   創建一個枚舉類型變量    
  public   MessageSize   msgsize;      
  //   給該變量賦值    
  msgsize   =   Small;     
  7.聲明並使用方法    
    //   定義一個沒有返回值的函數    
  void   voidfunction()   {    
    ...    
  }     
  //   聲明一個有返回值的子函數    
  String   stringfunction()   {    
    ...    
          return   (String)   val;//(string)表明返回類型    
  }     
  //申明一個能計算的函數    
  String   parmfunction(String   a,   String   b)   {    
    ...    
          return   (String)   (a   +   b);    
  }      
  //   使用函數    
  voidfunction();    
  String   s1   =   stringfunction();    
  String   s2   =   parmfunction("Hello",   "World!");      
  8.流程控制語句    
      在c#中流程控制語句與C++沒有多大區別。只不過C#中加了一個foreach(vb程序員應該不會陌生).    
  流程控制大不了有選擇、循環。    
          if條件語句的用法:    
                      if(Requery.QueryString["name"]==null){    
                                            statement....    
                        }       
        當有太多選擇時,常用switch語句    
        例   :      
                              switch   (Name)   {    
                                      case   "John"   :    
                                          ...    
                                        break;    
                                case   "Paul"   :    
                                      ...    
                                      break;    
                                case   "Ringo"   :    
                                      ...    
                                    break;    
                              default:    
                                      ...    
                                  break;    
                          }    
    循環語句通常有兩種:    
                  a.for循環    
                      for   (int   i=0;   i<3;   i++){    
                          statement...    
                    }    
                  b.while循環    
                        int   i   =   0;    
                        while   (i<3)   {    
                                Console.WriteLine(i.ToString());//i.ToString()目的是i轉化爲字符串型    
                                i   +=   1;    
                        }    
  9.異常處理    
        在編寫程序時,我們常會出現一些事先不可預期的事情。比方用戶的錯誤輸入、內存不夠、網絡資源不可用、數據庫無法使用等情況。所以我們應該用異常處理方法來處理這類問題。C#裏所有的異常都爲類的一個實例,這個類繼承於System.Exception類    
    先來介紹一下拋出異常語句thow    
          throw   expression    
      這個語句是在計算表達式的值時產生的一個異常           
        異常處理語句:    
        try是用來捕捉塊執行過程中發生的異常    
      cathc是用來處理該異常的。    
   通用方法:    
  try   {    
          //可能拋出異常的代碼    
  }   catch(OverflowException   e)   {    
          //   捕捉一個詳細的異常    
  }   catch(Exception   e)   {    
          //   捕捉一個通常的異常    
  }   finally   {    
          //   執行一個沒有異常的代碼    
  }    
  看一個貝貝寫的處理數據庫聯接出錯的異常:    
  try      
                          {                                    
                                  OleDbConnection   conn   =   getConn();           //getConn():得到連接對象      
                                  OleDbDataAdapter   adapter   =   new   OleDbDataAdapter();      
                                  string   sqlstr="select   id,title,author,pic,hits,posttime   from   notes   order   by   posttime   desc";     
                                  mydataset=   new   System.Data.DataSet();      
                                  adapter.SelectCommand   =   new   OleDbCommand(sqlstr,   conn);      
                                  adapter.Fill(mydataset,"notes");              
                                  conn.Close();      
                          }      
                          catch(Exception   e)      
                          {      
                                  throw(new   Exception("數據庫出錯:"   +   e.Message))        
                          }          
  10.字符串處理    
      在c#中string爲引用類型,所以可以用聯接,截斷    
   看了下面這個實例就知道了!    
  //   使用字符串    
  String   s1;    
  String   s2   =   "hello";    
  s2   +=   "   world";    
  s1   =   s2   +   "   !!!";      
  //   使用StringBuilder類的Append方法    
  StringBuilder   s3   =   new   StringBuilder();    
  s3.Append("hello");    
  s3.Append("   world");    
  s3.Append("   !!!");     
  11.事件處理    
      事件是類向外界發送通知的成員。    
   先還是看一個事件處理代表例子:    
   void   MyButton_Click(Object   sender,    
                                          EventArgs   E)   {    
  ...    
  }    
  這個我也不大懂,聽說看了MFC會比較清楚,如果哪位有這方面的經驗,還望多多指教。    
  12。聲明一個事件    
    //   創建一個public事件    
     public   event   EventHandler   MyEvent;      
    //   爲該事件定義一個方法    
    protected   void   OnMyEvent(EventArgs   e)   {    
                  MyEvent(this,   e);    
    }    
  13.給事業加OR去處理該事件的方法    
        Control.Change   +=   new   EventHandler(this.ChangeEventHandler);    
      Control.Change   -=   new   EventHandler(this.ChangeEventHandler);    
  14.類型轉換    
      int   i   =   3;//定義一個整形變量並賦值    
    String   s   =   i.ToString();//整形轉化爲字符串型,用ToString()    
    double   d   =   Double.Parse(s);//字符串型轉化爲雙精度型用Double.Parse(var);    
  還有一些,我就不解釋了,等我們有了一定的基礎再深究吧。反正瞭解了這一些對後面的常用問題處理還是沒有問題的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章