程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#說話基本——構造體和列舉類型周全解析

C#說話基本——構造體和列舉類型周全解析

編輯:C#入門知識

C#說話基本——構造體和列舉類型周全解析。本站提示廣大學習愛好者:(C#說話基本——構造體和列舉類型周全解析)文章只能為提供參考,不一定能成為您想要的結果。以下是C#說話基本——構造體和列舉類型周全解析正文


1、構造體(struct)

構造類型是用戶本身界說的一品種型,它是由其他類型組合而成的,可包括結構函數、常數、字段、辦法、屬性、索引器、運算符、事宜和嵌套類型的值類型。構造在幾個主要方面分歧於類:構造為值類型而不是援用類型,而且構造不支撐繼續。

用構造的重要思惟是用於創立小型的對象,如Point和FileInfo等等。這可以節儉內存,由於沒有如類對象所需的那樣有額定的援用發生。例如,當聲明含有不計其數個對象的數組時,這會惹起極年夜的差別。

構造體是一個變量組,將一組變量放在一路,其實就是一個自界說的聚集,外面可以包括各類類型的數據,用法和聚集一樣。

1、界說

構造體普通界說在Main函數下面,位於Class上面,作為一個類;普通情形Struct界說在Main函數後面,Main函數外面的處所都可使用,參數後面加上public代表公用變量。

格局:

struct +構造體的稱號

{

public int+變量名;

public string+變量名;

public int+變量名;

}

以上就是界說一個構造體的格局,外面包括很多種數據類型,如整形int,字符串string,帶小數點decimal等;

假如構造體界說在Main函數中,再能在Main函數中應用,普通看情形來界說在Main函數後面,Main函數外面的一切處所都可使用,參數後面加上public代表公用變量。

格局:

struct student

{

public int no;

public string name;

public int Csharp;

public int web;

public int database;

public int sum;

}

2、用法

(1)在Main函數裡面界說了一個student類型的構造體,在Main主函數中應用:

(2)然後為外面的每一個元素賦值,構造體名+點+構造體外面變量稱號=值。

(3)賦值以後完成以後停止打印。

Student lch=new student();//這句是在Main函數裡界說了一個名為lch的student 類型的構造體。

{

lch.no=1;     

lch.name=”李昌輝”;

lch.Cshap=88;

lch.web=90;

lch.database=98;

lch.sum=lch.Cshap+lch.web+lch.database;

}

Console.WriteLine(lch.no,lch.name,lch.Cshap,lch.web,lch.database,lch.sum );

【案例1】界說一個jiegouti類型的構造體,輸入類型中的構造體變量,法式運轉後顯示的成果以下圖:

 

【技巧要點】界說一個jiegouti類型的構造體,有3個構造變量,fenshu,name,kecheng,在主函數中界說一個參數吸收構造變量,然後輸入name,前往一個字符串。

3、構造體類型元素包括構造體類型

//假如想讓其他添加出來的類也可以或許應用此構造體,須要在後面加上public

public  struct student

        {

//想讓其他的類可以拜訪到個中的變量須要加上public

            public int nianling;

            public string name;

            public string sex;

//可以構造體中包括另外一個構造體

            public One qq;

//可以直接界說一個數組,然則沒有開拓空間

            public string[] shuzu;

        }

        public struct One

        {

            public string nb;

            public string abc;

        }

        static void Main(string[] args)

        {

            #region

//為外面的每一個元素賦值:(構造體名+點+構造體外面的變量稱號=值)

//應用之前須要先初始化一下

            student st = new student();

//初始化出來的變量名可以看作一個類對象

            st.name = "張三";

//類對象的稱號是不克不及雷同的

            st.nianling = 21;

            st.sex = "男";

            st.name = "王五";

//應用的時刻應用變量名點出來個中的變量停止應用

            Console.WriteLine(st.name);

//構造體中包括另外一個構造體類型,可以直接點出來一以下的變量

            st.qq.abc="qsqs";

//應用之前須要先開拓空間

            st.shuzu = new string [9];

//數組元素賦值方法

            st.shuzu[0] = "趙六";

//可以屢次初始化類,留意分歧的變量名

            student st1 = new student();

            st1.name = "李四";

            st1.nianling = 22;

            st1.sex = "女";

            #endregion

        }

【案例2】在下面jiegouti類型的構造體元素還可以包括別的一個構造體,再界說一個變量public int[] shuzu,輸入新界說的數組變量。運轉成果以下圖:

 

【技巧要點】界說jiegouti類型的構造體,原有3個構造變量,fenshu,name,kecheng,新增一個變量public int[] shuzu,而這個構造元素還可以包括一個新構造體,在主函數中從新(new 初始化)界說一個參數吸收這個新的構造變量,然後輸入name,前往一個字符串。

【案例3】在下面jiegouti類型的構造體元素還可以包括別的一個構造體,再界說一個變量public int[] shuzu,輸入新界說的數組變量。輸入的變量可以多個,用“+”銜接便可。

 

【技巧要點】界說jiegouti類型的構造體,原有3個構造變量,fenshu,name,kecheng,新增一個變量public int[] shuzu,而這個構造元素還可以包括一個新構造體,在主函數中從新(new 初始化)界說一個參數吸收這個新的構造變量,然後輸入name,前往一個字符串。

綜合演習:應用構造體,將學號、姓名和分數放入聚集,然後掏出並打印出來

 

2、列舉類型

列舉(enum)是值類型的一種特別情勢,它從System.Enum繼續而來,並為基本類型的值供給替換稱號。列舉類型著名稱、基本類型和一組字段。基本類型必需是一個除char 類型外的內置的有符號(或無符號)整數類型(如Byte、Int32或UInt64)。也能夠說,列舉類型是一組常量的聚集。

1、界說:Enum....{E}

列舉元素的默許基本類型為int。默許情形下,第一個列舉數的值為0,前面每一個列舉數的值順次遞增1。例如:

//列舉是常量的聚集,普通冒號前面不指定命據類型

  enum meiju:

        {

//列舉外面有默許的索引,也能夠指定;如索引3,但在掌握台中不起感化;

//用逗號離隔

        one=3,

        two=6,

        three,

//假如等於之前的一個常量,那末就等於這個常量;最初一行的逗號可省略

        four=two

        }

        static void Main(string[] args)

        {

            Console.WriteLine(meiju.one);

            Console.ReadLine();

2、用法

列舉也能夠指定命據類型,普通不指定。

在界說列舉類型時,可以選擇基類型,但可使用的基類型僅限於long、int、short和byte。例如:

如: enum meiju:int

【案例1】界說一個列舉類型,輸入列舉類型某個常量,法式運轉後顯示的成果,以下圖:

 

【技巧要點】界說一個int列舉類型,內有4個列舉常量,再界說一個辦法,該辦法有一個參數用來接收一個列舉類型的值,然後前往的是一個int類型的值。

3、留意:數字不克不及零丁放在列舉外面履行,體系會判錯,重要是束縛字符串;

如:6;

【案例2】界說一個列舉類型,內有6個列舉類型,下圖圖2是法式運轉後的成果。

 

【技巧要點】固然列舉是一個常量的聚集,但不克不及直接在列舉類型外面放置數字,體系不運轉。

綜合演習:20人投票,五個候選人,用switch  case

//20人投票  switch case  列舉

      //投票的時刻輸出1,2,3,4,5

      //應用12345來肯定是哪個候選人得票

      //盤算得票數

      //得票最高的勝出

      Console.WriteLine("投票選班長!請輸出1、2、3、4、5來分離代表張3、李4、王5、趙6、馮七");

      int[] shuzu = new int[20];

      for (int i = 1; i <= 20; i++)

      {

        Console.Write("請第" + i + "位同窗來停止投票:");

        shuzu[i - 1] = int.Parse(Console.ReadLine());

      }

      Console.WriteLine("投票停止!按下回車開端統計票數!");

      Console.ReadLine();

      int zhangsan = 0, lisi = 0, wangwu = 0, zhaoliu = 0, fengqi = 0, zuofei = 0;

      for (int i = 0; i < 20; i++)

      {

        switch (shuzu[i])

        {

          case (int)Houxuanren.one:

            zhangsan++;

            break;

          case (int)Houxuanren.two:

            lisi++;

            break;

          case (int)Houxuanren.three:

            wangwu++;

            break;

          case (int)Houxuanren.four:

            zhaoliu++;

            break;

          case (int)Houxuanren.five:

            fengqi++;

            break;

          default:

            zuofei++;

            break;

        }

      }

      if (zhangsan > lisi && zhangsan > wangwu && zhangsan > zhaoliu && zhangsan > fengqi)

      {

        Console.WriteLine("張三勝出!票數為" + zhangsan);

      }

      else if (lisi > zhangsan && lisi > wangwu && lisi > zhaoliu && lisi > fengqi)

      {

        Console.WriteLine("李四勝出!票數為" + lisi);

      }

      else if (wangwu > lisi && wangwu > zhangsan && wangwu > zhaoliu && wangwu > fengqi)

      {

        Console.WriteLine("王五勝出!票數為" + wangwu);

      }

      else if (zhaoliu > lisi && zhaoliu > wangwu && zhaoliu > zhangsan && zhaoliu > fengqi)

      {

        Console.WriteLine("趙六勝出!票數為" + zhaoliu);

      }

      else if (fengqi > lisi && fengqi > wangwu && fengqi > zhaoliu && fengqi > zhangsan)

      {

        Console.WriteLine("馮七勝出!票數為" + fengqi);

      }

      Console.WriteLine("作廢的票數為:" + zuofei);

      Console.ReadLine();

以上這篇C#說話基本——構造體和列舉類型周全解析就是小編分享給年夜家的全體內容了,願望能給年夜家一個參考,也願望年夜家多多支撐。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved