zoukankan      html  css  js  c++  java
  • 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}};        //定长
    水到渠成,相信积累的力量!
  • 相关阅读:
    Python 基础之 线程与进程
    python 基础之 模块
    Python 基础之socket编程(三)
    Python 基础之socket编程(二)
    Python全栈开发之11、进程和线程
    用 Python实现一个ftp+CRT(不用ftplib)
    Python全栈开发之10、网络编程
    Python全栈开发之9、面向对象、元类以及单例
    Python全栈开发之8、装饰器详解
    用python实现一个无界面的2048
  • 原文地址:https://www.cnblogs.com/popstar8866/p/4206919.html
Copyright © 2011-2022 走看看