C#学习之数据类型-(一:简介)

  •   c#是强类型语言,对变量的类型要求很严格,如果是整数,就用int表示,如果是字符串就用string表示等等;因此每个变量和对象都必须具有声明的类型。它要求所有的变量都必须先定义后使用,相对而言JavaScript语言属于弱类型语言,它在声明变量时,不管什么类型,统一用var关键字。在此不做介绍。

  

  •    c#语言的数据类型有两种:值类型引用类型。值类型放在内存栈中,而引用类型放在内存队中;在内存中存放的内容也是不一样的,值类型存放的是变量本身,而引用类型存放的是变量的引用。

    打个比方:值类型相当于现金,拿出来就可以花,引用类型相当于银行卡,必须拿着银行卡去取出钱,然后花,所以值类型比引用类型执行的更快一点。

言归正传:

C#值类型

c#值类型有以下三种

  1. 简单类型(Simple types)
  2. 结构类型(struct types)
  3. 枚举类型(Enumeration types)

1.简单类型

  整型,布尔型,字符型,浮点型,小数型

  1. 整型:      c#中有9个整型:sbyte,byte,short,ushort,int,uintlong,ulong,char;
    int popstar = 8;
  2. 布尔型: 布尔类型有两个值:true和false,
    bool popstar = true;          //定义一个布尔类型的变量并赋值为true
      bool popstar1 = (1 < 2);     //定义一个布尔类型的变量并为之赋值,它的值是表达式(1<2)的结果
  3. 字符型:字符型为一个单Unicode字符,一个Unicode字符16位长。
    char popstar='p';     //给一个字符变量赋值
  4. 浮点型:有两种类型:float和double;它们的差别在于取值范围和精度,当一个表达式中有一个值是浮点型时,所有其他的类型都要转换为浮点才可以计算。
  5. 小数型:当定义一个变量并赋值时,使用m后缀来表明她是一个小数型。
    decimal popstar = 1.2m;

2.结构类型

  一个结构类型可以声明构造函数,常数,字段等。尽管列出来的功能像一个类一样,但结构是值类型,类是引用类型。使用结构的主要思想是创建小型的对象,我的        理解便是:其实结构和类的作用是一样的,只不过如果内容(字段,方法)太多的时候,我们使用类,因为类是引用类型,我们可以将这个类放在别处,用的时候        拿进来,很方便;相反,如果内容(字段,方法)较少的时候便可以使用结构体,因为我们不需要引用了,直接和主体函数放在一块就ok。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication3
{
    struct popstar
    {
        public string firstname;               //姓字段
        public string secondname;              //名字段
        public popstar(string m, string n)     //构造函数
        {
            firstname = m;
            secondname = n;
        }
    }
    class Program 
    {
       
        static void Main(string[] args)
        {
            popstar p = new popstar("", "");
            Console.WriteLine(p.firstname+p.secondname);
            Console.ReadKey();
            
        }
    }
}
输出结果:张三

3.枚举类型

  是一个由指定常量集合组成的独特类型;

    (1)默认情况下,枚举元素是int型,且第一个元素为0,每一个连续的元素按1递增。

enum MonthNames { January,February,March,April};   //定义一个枚举,包含1-4月

    (2)如果想给第一个元素赋值,可以按如下方式设置为1:

enum MonthNames { January=1,February,March,April};   //定义一个枚举,包含1-4月

    (3)如果想给每一个赋值也可以-可以使相同的值,但元素名不可以相同

enum MonthNames { January=23,February=2,March=33,April=2};   //定义一个枚举,包含1-4月
class Program
    {
        static void Main(string[] args)
        {
            
            Console.WriteLine((int)MonthNames.January);
            Console.ReadKey();
        }
    }

    (4)也可以使用不同于int的数据类型

enum MonthNames:byte { January=2,February=33,March=23,April=33};   //定义一个枚举,包含1-4月

    不过枚举使用的类型仅仅限于long 、int、short、byte.

C#引用类型

在C#中引用类型包括:

    1. 对象类型;
    2. 类类型;
    3. 接口;
    4. 字符串类型;
    5. 数组;

1.对象类型

    对象类型是所有类型之母,她是其他类型最根本的基类,所以可以把任何类型的值付给它。

        object popstarInt = 123;                    //将整型赋给object变量
        object popstarChar = 'p';                   //将字符型赋给object变量
        object popstarString = "popstar";           //将字符串赋给object变量
        object popstarBool = true;                  //将bool值赋给object变量

2.类类型

    类(class)类型是一个很神奇的类型,主要有属性和方法两个元素。属性就是这个类包含的一些数据类型的变量,方法是这个类包含的动作。

    类还有构造函数和析构函数,构造函数是用来开辟一块内存来存放类的实例,析构函数是用来把这块内存销毁。下面是一个简单的用户类:

public class User
    {
        string username;                     //用户名
        int age;                             //姓名
        bool sex;                            //性别
        public string Getusername()
        {
            return username;
        }
    }

   在此只简单地介绍类类型,面向对象后面还要详细学习。

3.接口

    接口:就是仅仅声明了但没有去实现,相当于一片文章的大纲,但没有具体内容。每个人都可以用这个大纲写进自己的内容。接口就是为了规范化,将大纲统一起来。

        对于程序猿呢,就可以使用接口中统一的方法名,去实现各自不同功能的方法。

        一个接口可以派生多个类,一个类也可以继承于多个接口,但一个类只可以有一个基类。接口简单使用如下:

 1 interface Iface
 2     {
 3         string GetMyName();
 4     }
 5     class popstar :Iface
 6     {
 7         string popstarName = "popstar";
 8         public string GetMyName() 
 9         {
10             return popstarName;       
11         }
12     }
13     class Program
14     {
15         
16         static void Main(string[] args)
17         {
18             popstar people = new popstar();
19             Console.WriteLine(people.GetMyName());
20           
21             Console.ReadKey();
22         }

4.字符串类型

  字符串数据类型当然是用来保存字符串的。它继承自object,而且是被密封的。

            string myName = "popstar";                   //声明一个字符串类型的变量并为其赋值
            string add = "I" + "love" + "you";           //将三个字符串合并为一个字符串赋给add
            char p = add[0];                             //取出add字符串中的第一个字符赋给p字符变量
            Console.WriteLine(p);

5.数组类型

  数组是可以容纳多个元素的类型,但是容纳的元素必须是同一种类型,如定义了一个int[]的数组,则数组里面只能存放int型的元素。

  数组一个比较重要的概念就是“维数”,定义数组的方法有以下几种:

            int[] intArr = {1,12,2};
            int[] intArr1 = new int[] { 1,1,1,11,2,2};       //不定长
            int[] intArr2 = new int[3] { 1,2,3};             //定长
            int[,] intArr3 = new int[,] { {1,1,3},{2,2,3}};  //不定长
            int[,] intArr4=new int[2,2]{{1,1},{2,2}};        //定长
水到渠成,相信积累的力量!
原文地址:https://www.cnblogs.com/popstar8866/p/4206919.html