zoukankan      html  css  js  c++  java
  • 深入C#数据类型

                                                       C#常用的数据类型

       常用的数据类型                        java                     C#                     举例

       整型                                      int                        int                     年龄

       浮点型                                    float                     float                   成绩

       双精度型                                 double                  double                圆周率

       字符串                                    String                   string                 家庭住址

       布尔型                                    boolean                 bool                  是否为少数民族

       枚举类型                                 enum                    enum                颜色

    值类型

    值类型源于System.ValueType家族,每个值类型的对象都有一个独立的内存区域用于保存自己的值,值类型数据所在的内存区域称为(Stack)

    值类型主要包括基本数据类型(如  int,float,double)

    案例:

      int heightzhang=170;

      int heightli=heigtzhang;

      Console.writeLine("去年张浩的成绩为:"+heightzhang+"李明的成绩为:"+heighli);

      heightli=180;

      Console.writeLine("去年张浩的成绩为:"+heightzhang+"李明的成绩为:"+heighli);

    引用类型

     引用类型源于System.Object家族,在C#中引用类型主要包括数组,类,和接口等

    案例:

     int[] infozhang=new int[]{179,60};

     int[] infoli=infozhang;

     Console.write("去年张浩的身高是:"+infozhang[0]+"体重是:"+infozhang[1]+"李明的身高是:"+infoli[0]+"体重是:"+infoli[1]);

     infoli[0]=180;

     infoli[1]=70;

    Console.write("去年张浩的身高是:"+infozhang[0]+"体重是:"+infozhang[1]+"李明的身高是:"+infoli[0]+"体重是:"+infoli[1]);

     细分值类型和引用类型

                                                          数据类型的分类

                               类别                                                                描述

           值类型                              基本数据类型                             整型:int

                                                                                               长整型:long

                                                                                               浮点型:float

                                                                                                双精度型:double

                                                                                                 字符型:char

                                                                                                布尔型:bool

                                                枚举类型                                    枚举 :enum

                                                结构类型                                     结构:struct

            引用类型                         类                                             基类:System.Object

                                                                                                字符串:string

                                                                                                自定义类:class

                                               接口                                            接口:interface

                                               数组                                             数组:int[],string[]

    结构

     public int id;

     public int age;

     public int Id{

    get{ return id;}

    set{ id=value;}

    }

     public int Age{

     get{ return age;}

    set{ age=value;}


    }

      结构的定义

     访问修饰符  struct  结构名{
              //结果体
    }

     结构定义有以下特点:

     1.结构中可以有字段,也可以有方法

     2.定义时,结构中的字段不能被赋值

     public struct Student{
    public int id;

    public int age;
    }

    结构的使用

    结构的构成和类相似,在使用结构时,要注意以下几个方面:

    1.可以不用new,直接定义结构的对象即可‘

    2.声明结构的对象后,必须给结构的成员赋初值

    public struct Student{

    public int id;

    public int age;

    public void Show(){
    Console.writeLine("ID:{0}\n年龄:{1}",id,age);
    }
    }

    static void Main(string[] args){
    Student stu;

    stu.id=1001;

    stu.age=20;

    stu.show();
    }

    结构的使用经验

    结构是值类型,声明结构变量就存储一个结构的新副本,即系统要开辟一块新的存储空间,因此结构用得越多所消耗的空间也越多

    装箱和拆箱

    我们说数据类型按照存储方式可以分为值类型和引用类型,二者仍然可以相互转换。将值类型转换为引用类型的过程称为装箱,反之称为拆箱

    static void Main(string[] args){
    int i=123;

    object o=i;

    i=456;

    Console.writeLine("值类型的值为 {0}",i);

    Console.writeLine("引用类型的值为 {0}",o);


    }

    拆箱

    int i=123;

    object o=i;

    int j=(int)o;

    不同类型的参数传递

    1.使用值传递,在方法中对参数值的更改在调用后不能保留

    2.所以ref方式传递,可以将对参数值的更改保留

    值方式参数传递

    在值方式参数传递时,参数可以是引用类型,也可以是值类型

    使用引用类型作为参数

    class Voter{
    public void Vote(SE se){
    se.Popularity++;
    }
    }

    SE zhang=new SE();

    zhang.Age=25;

    zhang.Name="张菁";

    zhang.Gender=Gender.female;

    zhang.Popularity=10;

    MessageBox.Show(zhang.SayHi());

    Voter voter=new Voter();

    voter.Vote(zhang);

    MessageBox.Show(zhang.SayHi());

    引用方式参数传递

    1.使用引用类型作为参数

    private void Vote(ref SE se){
      se.popularity++;
    }

    2.使用值类型作为参数

    private void Vote(ref StructSE se){

    se.popularity++;

    用ref方式传递的二种参数形式没有区别,都会保存方法中的修改


    }

    拆箱

  • 相关阅读:
    Annotation
    GIT的作用以及Versioncontrol为什么要用GIT
    Http协议
    人工智能的可怕与不可怕
    Makefile简易教程
    Node.js 学习笔记之一:学习规划 & 认知 Node.js
    《大教堂与集市》的启示 — 软件工程的另一种选择
    Git简易教程
    谈谈买书与读书
    clang编译器简介
  • 原文地址:https://www.cnblogs.com/1234wwww/p/6514875.html
Copyright © 2011-2022 走看看