• C#入门经典札记_Ch03变量和表达式


    C#入门经典_札记

    Chapter 3:

    3.1 C#的基本语法

    1.无论代码中是否有空格、回车符或tab字符(这些字符统称为空白字符),C#编译器都不考虑这些字符。

    3.2 变量

    1.计算机中所有的数据都是相同的东西(一组01),但是变量有不同的内涵,成为类型。建立这个类型系统的原因是,不同类型的数据需要用不同的方法来处理。变量限定为不同的类型,可以避免混淆它们。例如,在处理,组成数字图片的01序列和组成声音的01序列,其处理方式是不同的。

    2.可以使用的变量类型是无限多的,因为可以自己定义类型,存储各种复杂的数据。

    3.2.1 简单类型

    1.简单类型就是组成应用程序中基本组成部件的类型,如,数值和布尔值。

    2.简单类型与复杂类型是不同的,不能有子类型或属性。 

    3.数值类型过多的原因是在计算机内存中,把数字作为一系列01来存储的机制。

    4.数值类型表:

    整型:

    类型

    别名

    允许的值

    sbyte

    System.SByte

    在 -128~127之间的整数

    byte

    System.Byte

    在 0~255之间的整数

    short

    System.Int16

    在 -32768~32767之间的整数

    ushort

    System.UInt16

    在 0~65535之间的整数

    int

    System.Int32

    在 -2147483648~2147483647之间的整数

    uint

    System.UInt32

    在 0~4294967295之间的整数

    long

    System.Int64

    在 -9223372036854775808~9223372036854775807之间的整数

    Ulong

    System.UInt64

    0~18446744073709551615之间的整数

    浮点:

    类型

    别名

    float

    System.Single

    double

    System.Double

    decimal

    System.Decimal

    字符:

    类型

    别名

    允许的值

    bool

    System.Boolean

    true/flase

    char

    System.Char

    一个unicode字符,存储0~65535之间的整数

    string

    System.String

    一组字符

    Note:

    1.这些类型中的每一种都利用了.net framework中定义的标准类型。使用标准类型可以在语言之间交互操作。在C#中这些类型的名称是framework中定义的别名。

    2.string字符数没有上限,因为它可以使用可变大小的内存。字符串是引用类型,所以字符串可以被赋予null值,即字符串变量不引用字符串。

     

    3.3.2变量的命名

    基本命名规则如下:

    1.变量名的第一个字符必须字母、下划线或者@

    2.其后的字符可以说是字母、下划线或者数字。

    Microsoft建议:

    对于简单的变量,使用camelCase规则;对于比较高级的命名室友PascalCase

     

    3.3.3字面值

    转义序列

    转义序列

    产生的字符

    字符的Unicode

    单引号

    0x0027

    双引号

    0x0022

    \

    反斜杠

    0x005C

    0x0000

    a

    警告(产生蜂鸣)

    0x0007

    

    退格

    0x0008

    f

    换页

    0x000C

    换行

    0x000A

    回车

    0x000D

    水平制表符

    0x0009

    v

    垂直制表符

    0x000B

    Notice

    Unicode值是字符在Unicode字符集中16进制值。该转移序列包括标准的“”字符,后跟一个u416进制值。

    如:” wyh ’s  blog ” 等价于 ” wyh u0027s blog ”

     

    3.3.4变量的声明和赋值

    1.同时声明多个类型相同的变量。

    int xsize, ysize ;

     

    3.4表达式

    1.运算符的很广泛,有简单的,也有复杂的,复杂的操作则包括通过变量内容的二进制表示来处理它们。

    3.4.1数学运算符

    1.+(一元)  :   var1=-var2 ;   //var1=var2*-1 

     var1=+nar2 ;  

    +运算符对结果没有影响。他不会把值变成正的:假如var2=-1,那么+var2表达式的值还是等于-1。这个运算符最有用的方面是,可以定制它的操作,运算符的重载。

    2.对bool变量使用数学运算符,编译器会报错。

    3.Char变量的想家也会有点让人摸不着头脑。记住,char变量实际上存储的是数字,所以把两个char变量加在一起也会得到一个数字(int类型,隐式转换)。

    4.String变量能使用的数学运算符只有+。还有赋值运算符+=

    5.递增、递减运算符:

    运算符

    类别

    示例

    结果

    ++

     

    Var1=++var2

    Var1

    --

     

    Var1=--var2

     

    ++

     

    Var1=var2++

     

    --

     

    Var1=var2--

     

    1.++总是使操作数加1

    2.--总是使操作数减1

     

    3.4.2赋值运算符

    、 += 、 -= 、 *= /=  、 %=

     

    3.4.3运算符的优先级

    优先级

    运算符

    ++--(前缀)、+-(一元)

    */%

    +-

    =*=/=%=+=-=

    ++--(后缀)

     

    3.4.4名称空间

    1.名称是由名称空间唯一定义的,可以在leveloneleveltwo名称空间中定义namethree:

    namespace levelone

    {
    //name “namethree” defined

    namespace leveltwo
    {

    //name “namethree” defined

    }

            }

    2.using 语句的意思是“我们需要使用这个名称空间的名称,所以不要每次总是要求对它们分类”。例如,下面代码中,levelone名称空间中的代码可以访问levelone.leveltwo名称空间中的名称,而无需分类:

    namespace levelone

    {

    using levelone;

    namespace leveltwo

    {

    //name “namewo” defined

    }

    }

    Levelone名称空间中的代码现在可以直接使用nametwo引用leveltwo.nametwo

     

  • 相关阅读:
    Centos 7 运行出错:cannot find a valid basecrl for repo:base/7/x86_64
    nc 使用
    linux uniq去重,awk输出(可用于爆破字典优化)
    关于fixedsys字体 FSEX300.ttf FSEX300-L.ttf FSEX301-L2.ttf
    MyAtoi
    viplugin eclipse
    资源获取即初始化RAII
    阈值分割技术
    图像类型转换
    形态学
  • 原文地址:https://www.cnblogs.com/wyh19930325/p/3698841.html
Copyright © 2020-2023  润新知