国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

C#簡明教程

2024-07-21 02:29:44
字體:
來源:轉載
供稿:網友


  首先講解一下c#,這里只是粗略的講解,詳細內容請購買相關書籍,或參閱相關文檔。c#已經取消了c++中的指針,并且在c++中大量被使用的操作符 (:: ->)已經不在出現,c#中指支持一個"."。c#具有面向對象編程語言的所有特性,如封裝、繼承、多態等。而且比java更面向對象,每種類型都可以看作一個對象。但c#指允許單繼承,即一個類不會有多個基類。另外,c#沒有了全局函數,沒有了全局變量,也沒有了全局常量。一切都必須封裝在一個類中。

  下面舉一個控制臺應用程序的小例子:

using system;
class mikecat
{
    public static void main()
    {
        console.writeline("邁克老貓c# asp.net入門系列教程--歡迎訪問老貓的理想");
    }
}
        
      在c#中程序總是從main()方法開始,main()方法必須且只能包含在一個類中,main()方法返回的類型可以是void(無返回值)或int(返回代表應用程序錯誤級別的整數)。
     上面的using system;用于導入名字空間(namespace)用來表明類的層次關系。如果不用using導入名字空間,則每次用某一個類時就得在類名前面加上名字空間。
      c#程序的輸入輸出通過console來實現。console是system名字空間下的一個類。在屏幕上輸出一個字符串用console.writeline(),接受輸入設備的輸入用console.readline()方法。

 程序代碼:


class mikecat
{
    public static void main()
    {
        system.console.writeline("邁克老貓c# asp.net入門系列教程--歡迎訪問老貓的理想/n");
         system.console.writeline("請輸入用戶名:");
         string user=system.console.readline();
         system.console.writeline("歡迎你:{0}的光臨!",user);
     }
}

   writeline()方法的參數表中緊隨串后的第一個參數將替換{0}。

  如果執行程序時要傳遞命令行參數給應用程序,則main()方法的格式應為:
 

using system;
public class mikecat
{
    public static void main(string[] args)
    {
          console.writeline("共有{0}個命令行參數",args.length);
          for(int i=0;i          {
                console.writeline("arg[{0}]=[{1}]",i,args[i]);
          }
     }
}

     c#中的單行注釋用//,多行注釋用/*...*/

     c#中使用常量:

using system
class mikecat
{
    public const double pi=3.14;
    public static void main()
    {
         console.writeline("圓周率pi的值為{0}",pi);
    }
}

        結構體類型(struct)是一種復合數據類型,用于將某些相關的數據組織到一個新的數據類型中。

using system;
struct mikecat
{
    public string mike;//user
    public uint age;//age
    public string email;//email
}

class mf
{
    public static void main()
    {
         mikecat zl;//聲明結構體類型變量zl
         zl.name="邁克老貓";
         zl.age=24;
         zl.email="[email protected]";
         console.writeline("姓名:{0},年齡:{1},郵箱{2}",zl.name,zl.age,zl.email);
    }
}

    c#中枚舉類型(enum)是一組邏輯上密不可分的整數值:
 

 c#中枚舉類型中的每個元素類型均為int byte long short型,且第一個元素值為0,其后面的按1遞增。在枚舉中也可以直接給元素賦值,后面的遞增。
enum weekday:byte
{
    sunday=1,monday,tuesday,wednesday,thursday,friday,saturday

  繼續上回,數組是我們經常用到的,我來介紹一下:數組是具有相同類型的一組數據。當訪問數組中的數據時,可以通過下標來指明。c#中數組元素可以為任何數據類型,數組下標從0開始,即第一個元素對應的下標為0,以后逐個遞增。數組可以一維也可多維。
    //包含6個元素的一維整數數組;
     int[] mf1=new int[6]; //注意初始化數組的范圍,或者指定初值;
    //包含6個元素的一維整數數組,初值1,2,3,4,5,6
     int[] mf2=new int[6]{1,2,3,4,5,6};
     //一維字符串數組,如果提供了初始值設定項,則還可以省略 new 運算符
     string[] mf3={"c","c++","c#"};
     //一維對象數組
     object[] mf4 = new object[5] { 26, 27, 28, 29, 30 };
     //二維整數數組,初值mf5[0,0]=1,mf5[0,1]=2,mf5[1,0]=3,mf5[1,1]=4
     int[,] mf5=new int[,]{{1,2},{3,4}};
     //6*6的二維整型數組
     int[,] mf6=new mf[6,6];
    
     下面來看一個一維字符串數組的遍歷

    using system;
    public class mikecat
    {
    static void printarray(string[] arr)
    {
    //打印數組元素,arr.length 表示數組元素的個數
    for(int i=0;i    {
    console.writeline("arr[{0}]={1}",i,arr[i]);
    }
    }
    public static void main()
    {
    string[] arr={"c","c++","c#"};
    //將數組作為一個參數傳遞
    printarray(arr);
    }
    }

  程序結果:arr[0]=c arr[1]=c++ arr[2]=c#
    
    下面來看一個4行2列(4*2)的整型數組的遍歷:
    using system;
    public class mikecat
    {
    static void printarray(int[,] arr)
    {
     //通過兩次for循環遍歷二維數組
      for(int i=0;i<4;i++)//初始化i作為循環變量,i++實現該變量的自增運算。
      //for循環滿足條件后執行完循環體一次后執行i++,然后進入下次循環。簡單的c語法,這里做簡單介紹照顧初學者。(詳細可參閱譚浩強先生的c語言程序設計一書)
    {
    for(int j=0;j<2;j++)
    {
    console.writeline("arr[{0},{1}]={2}",i,j,arr[i,j]);//打印每個二維數組元素
    }
    }
    }
    public static void main()
    {
    //主函數
    //將數組作為一個參數傳遞
    printarray(new int[,]{{1,2},{3,4},{5,6},{7,8}};
    }
    }
    運行結果:arr[0,0]=1 arr[0,1]=2 arr[1,0]=3 arr[1,1]=4 arr[2,0]=5 arr[2,1]=6 arr[3,0]=7 arr[3,1]=8
    
    
  類是面向對象程序設計的基本構造塊,詳細我們在后面介紹。這里我們介紹兩個特殊的類,即object類和string類
    1.object類
   
   object類是預定義類system.object的別名,它是所有其他類型的基類。c#中所有類型都直接或間接從object類中繼承。因此,一個object類的變量可以賦予任何類型的值。
   
int i=30;
object obj1;
obj1=i;
object obj2='a';

    2.string類
    string類專門用于對字符串的操作,他是預定義類system.string的別名
   
string str1="mikecat";

    可以用"+"號連接兩個字符串。
   
string str2="username:"+"mikecat";

    如果訪問單個字符,則要用下標。
   
char c=str1[0];

     比較兩個字符串是否相等,可用比較操作符"=="http://有別于basic語法
   
bool b=(str1==str2);


     c# 中,取消了c和c++中使用最靈活,也是最難掌握的指針。那么在c#中如何提供c/c++中的函數指針的功能?c#提供了委托(delegate),委托是繼承自system.delegate類的引用類型。它相當于函數指針原型。與函數指針不同的是,委托在c#中是類型安全的,委托特別適合于匿名調用。要使用委托需經過三個步驟,即聲明、實例化、調用。
     using system;
     //聲明一個名為mfdelegate的委托,該委托有一個string類型的參數
     //c#編譯器編譯時會產生一個新類,該類繼承自system.delegate,類
     //名為mfdelegate
     public delegate void mfdelegate(string name);
   
     public class mikecat
     {
     //定義與mfdelegate有相同參數類型的方法hello()
     public static void hello(string name)
     {
     console.writeline("您好,{0}!",name);
     }
     //定義與mfdelegate有相同參數類型的方法goodbye()
     public static void goodbye(string name)
     {
     console.writeline("再見,{0}!",name);
     }
     public static void main()
     {
     //創建一個mfdelegate實例 mf1
     mfdelegate mf1=new mfdelegate(hello);
     //調用mf1
     mf1("mikecat");
     mfdelegate mf2=new mfdelegate(goodbye);
     mf2("mikecat");
     //將mf1 mf2組合成一個新的委托mf3
     mfdelegate mf3=mf1+mf2;
     //調用mf3
     mf3("邁克老貓");
     //從組合的委托mf3中刪除mf1
     mfdelegate mf4=mf3-mf1;
     mf4("mikecat");
     }
     }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 漠河县| 盐源县| 湘阴县| 新竹县| 永清县| 彭州市| 镇康县| 南陵县| 赫章县| 乐都县| 崇明县| 土默特右旗| 天等县| 拉萨市| 南陵县| 横山县| 西畴县| 乌拉特中旗| 永寿县| 胶州市| 会宁县| 定安县| 香格里拉县| 绥宁县| 沙坪坝区| 光山县| 杂多县| 郯城县| 远安县| 涟源市| 扶沟县| 正定县| 罗甸县| 阳春市| 新余市| 金堂县| 玛曲县| 建平县| 玛曲县| 邵阳市| 定西市|