• C#高级编程学习日记之C#基础之变量和预定义数据类型


    外话:今天看到有一个园主的博客里面说的学习之塔,探讨了如何提高学习效率的问题。很受启发,自己学习程序却没有坚持程序。却一直从事程序二线实施,现在想重新拾起那些厚厚的课本走上一线。时间就是金钱,如何快速的提高自己的水平呢?

    • 阅读
    • 培训
    • 向先进者学习
    • 辅导他人学习
    • 日记与博客

    培训现在还没有条件,辅导他人学习是不大靠普的,自己对程序理解的还很浅。阅读,总结阅读。最为适合自己的学习方式,坚持下去。

    了,一切从基础开始《C#高级编程》。第一章,.Net的体系结构。最基础,却也很高深。实话,现在读不懂。没事儿,老师曾教导我们说:看不懂,没有关系,先当小说看。然后回过头去看,理解起来就不那么痛苦了。个人总结:编程语言C#和.Net之间的关系。有点像微软的Office和操作系统 的关系,要想高效的办公,不仅需要office这个工具,还需要window系统。没有操作系统的支持,好用的地office工具总不能安转载裸机上吧。没有系统,再高效的office也没用。同样,没有.Net framework x.x编写再好的程序。却无用武之地,使用开发C#需要.net framework。

    第二章有14个小结,前面的hello word就省略了。从变量开始说起,平时操作变量操作贯了。却没有总结过,变量,理解:变化的量,量:计量,数量,数的多少。数:整数,小数。(想到的就是这么多了),程序里面表示为(常见):int,float。单词:variable。声明:datatype identifier;例如:int i;这样就声明了一个装整数的变量:取名叫i,这个i就能装整数,可以装负整数和正整数。装多大(多小),看数据类型一会儿写出来,变量倒是声明出来了,有什么用呢?把数据保存到电脑,保存起来有什么用?处理数据,简单作用从电脑屏幕打印出来。Int I; i=10;Console.WriteLIne(i);i=11;Console.WriteLine(i);个人理解:找来一个容器(装整数的),在容器里面放10这个数,从Dos窗体输出容器里的东西。继续这时候把容器的东西变一下,变成11,然后再输出。当然还能换别的东西(负整数也可以)。需要注意的是:要对变量进行处理(比方:打印到屏幕)。有个前提,变量里有东西,才能处理。就声明一个变量,如果不对其赋值。就处理程序就要异常。为何?我们要处理容器里的东西,容器里面没有东西。处理还有意义吗?所以.Net禁止使用未赋值的变量。(结果是错误)

    变量

    1. 变量的初始化。

    概括起来:c#的变量在使用前,必须初始化。那.net又是如何判断的呢?两个方法

    • 变量如果是类或结构中的字段,创建这些变量时其值就是默认。
    • 方法的局部变量必须在代码中显示的初始化,之后才能再语句中使用变量。

    .net是怎么做到的呢?不关心,如果不这么做,。Net会怎么样呢?会很生气,后果很严重。报错:使用了未初始化的变量。英语怎么说:忘了。。。。

    1. var:网络上有一种说法:变数。这解释有些靠谱,变着戏法的识别数据。专业一点的说法:类型推断,数据类型的推断。就是根据数据类型自动推断,变着戏法的推断数据类型。且推断十分准确,不管什么类型都能推断出来。除非:这个类型没有被初始化。

    言外之意:类型推断必须是对有了值得数据类型进行推断。没值,没法推断。

    1. 变量的作用域。(这个变量的使用范围)
      1. 在同一个花括号内有效。
      2. 在同一个花括号内不能声明两个相同类型,相同名字的变量。

        例如:{int i=1;int i=2;},错误,也包括{int i=1;{int i=2;}},这样也不行。 但两个for循环不嵌套也能声明为同类型,同名的变量。两个for的花括号是独立的花括号。

    2. 与变量相对的就是常量
      1. 理解:定义并且马上赋值,且在其作用域内不能修改。例如:const int i=10;
      2. 不能把变量给常量,即使变量已有值。如:int i=1; const j=I;//这样是错误的
      3. 常量是静态的,但不必在常量声明中定义'static'

    预定义数据类型

       

       

       

    差别:

    值类型:直接存储值,存放在内存的堆栈中。

    引用类型:存储值得引用地址,存放在内存的托管堆中。

    值类型包括:

    类型

    名称

    CTS类型

    说明

    范围

    类型

    类型

    整数

    有符号

    sbyte

    System.SByte 

    1个字节的有符号整数。1个字节有8位,2的8次方-1就是它的最大值

    SByte.MaxValue| SByte.MinValue

    short

    System.Int16 

    2个字节的有符号

      

    int 

    System.Int32 

    4个字节的有符号

      

    long 

    System.Int64 

    8个字节的有符号,默认声明是:int类型,需要显示声明:如long longNum=123L;

      

    无符号

    byte 

    System.Byte

    1个字节的无符号

      

    ushort 

    System.Uint16 

    2个字节的无符号

      

    uint

    System.Uint32 

    4个字节的无符号,默认声明是:int类型,需要显示声明:如uint longNum=123U;

      

    ulong 

    System.UInt64

    8个字节的无符号, 默认声明是:int类型,需要显示声明:如ulong longNum=123UL;

      

    小数

    单精度

    float 

    System.Single

    4个字节单精度,最长小数点7位。默认声明:double类型,需要显示声明:如:float f=123.123F;

      

    双精度

    double 

    System.Double

    8个字节双精度,最长小数点 15|16位

      

    多精度

    decimal 

    System.Decimal

    16个字节的多精度,最长小数点 128位,同要需要指定类型,decimal d=25.25365M;

      

    字符

    char 

    System.Char

    2个字节的unicode字符

      

    布尔

    bool

    System.Boolean

    true或false

      

       

    引用类型包括

    类型

    名称

    CTS类型

    说明

    对象类型

    object

    System.Object

      

    字符串

    string

    System.String

    Unicode字符串

    使用object类型的目的

    • 使用object引用绑定任何子类型对象。
    • object类型执行许多一般用途的基本方法。

    string对象保留在堆上,而不是堆栈里。因此,当把一个字符串变量赋值给另一个字符串时。会得到内存中同一个字符串的两个引用,但又与引用类型有些区别,那就是修改其中一个字符串,就会创建一个全新的string对象。而另一个字符串没有改变

    理解起来有些困难就直接操下来,以后再慢慢理解。

  • 相关阅读:
    大快DKhadoop开发环境安装常见问题与解决方案
    大快搜索:做大数据底层技术的领跑者
    大快搜索工业大数据管理平台深度解析
    大快DKH大数据智能分析平台监控参数说明
    大快hadoop安装包下载与平台监控参数说明
    重磅|大快搜索上榜2018中国大数据公司50强 斩获多项大奖成最大黑马
    [岁月随想]感恩节前夕
    [听点音乐]American Music Awards 2015 Winners
    [IT学习]sql 入门及实例
    [英语学习]免费学习英语的好地方
  • 原文地址:https://www.cnblogs.com/Dtscal/p/2288244.html
Copyright © 2020-2023  润新知