变量

变量代表着一块内存空间,我们可以通过变量名称想内存存/取数据,有变量就不需要我们记忆复杂的内存地址。

向内存中申请一块内存空间的语法:   数据类型 变量名;

变量类型

变量类型

存储位置

自动初始化

用途

本地变量

栈或者栈和堆

用于函数成员内部的本地计算

类字段

类的成员

结构字段

堆或栈

结构的成员

参数

用于把值传入或者传出方法

数组元素

数组的成员

多重变量声明:可以把多个变量声明在一条单独的声明语句中。

注:多重变量声明中的变量必须类型相同,变量名必须用逗号分隔,可以在变量名后包含初始化语句。

  1. <span style="color:#000000;"> static void Main(string[] args)
  2. {
  3. //声明一些变量,有的被初始化,有的没被初始化。
  4. int a = 8, b, c = 7;
  5. double d, f = 3.14;
  6. int g ,float h; //错误,多重变量声明类型必须相同!
  7. }</span>

关于变量的数据类型:

C# 类型

.Net 框架类型

有无符号

占据位数

取值范围

sbyte

System.Sbyte

1

-128 到 127

short

System.Int16

2

-32768 到32767

int

System.Int32

4

-2147483648 到 2147483647

long

System.Int64

8

-9223372036854775808 到 9223372036854775807

byte

System.Byte

1

0 到 255

ushort

System.Uint16

2

0 到 65535

uint

System.UInt32

4

0 到 4294967295

ulong

System.Uint64

8

0 到18446744073709551615

float

System.Single

4

可能值从 ±1.5 x 10-45 到 ±3.4 x 1038,小数点后7位有效数字

double

System.Double

8

可能值从 ±5.0 x 10-324 to ±1.7 x 10308小数点后15到16位有效数字

decimal

System.Decimal

12

可能值从 ±1.0 x 10-28  到±7.9 x 1028小数点后28到29位有效数字

char

System.Char

N/A

2

任何16位Unicode字符

bool

System.Boolean

N/A

1 / 2

true 或者false

在C#当中,分为两种数据类型,值类型与引用类型.

值类型,表示实际数据,只是将值存放在内存中,值类型都存储在堆栈中,包括:

简单类型:int,char,float,double,bool等,还有结构及枚举.

引用类型,表示指向数据的指针或引用,包含内存堆中对象的地址,为 null时则表示未引用任何对象,包括:类,接口,数组,字符串,委托,Object.

有两种引用类型在C#中受到了特别的重视,它们的C#别名和预定义值类型的C#别名很相像。第一种是Object类(C#别名是object, o小写)。这是所有值类型和引用类型的最终基类。因为所有的类型派生自Object,所以可以把任何类型转换为Object类型,甚至值类型也可以转换。所有的值类型都派生自引用类型。第二种是String类。字符串代表一个固定不变的Unicode字符序列。字符串在很多方面都像值类型,而不像引用类型。

"+"在C#中有两种意义:
⒈是数学中的加法运算:两边参与假发运算的数据类型为数字类型,则"+"表示数学上的加法运算的意义。
⒉是连接的意思:两边参与加号运算的数据,有一个是字符类型,那么个"+"号就是连接的意义。
在Console.WriteLine("")中,第一个变量/字符串中可以使用占位符。占位符由{数字}组成,数字由0开始编号。
第一个站位符:{0}
第二个占位符:{1}
第三个占位符:{2}
···
Console.WriteLine();有多个参数时,输出都是第一个参数中的内容,从第二个参数开始,都是用来替换第一个参数中的站位符的值,所以从第二个参数开始,要不要输出,就要看第一个参数中有没有相关的占位符。

类型自动转换规则

参与运算(算术运算和赋值运算)的操作数和结果类型必须一致。当不一致时,满足下面条件,系统自动完成类型转换

⒈两种类型兼容        例如: int和double兼容

⒉目标类型大于源类型    例如:double>int

对于表达式:如果一个操作数为double类型,则整个表达式可提升double型。

强制类型转换

语法:(数据类型)待转换的值;

例如:

[csharp] view plaincopyprint?

 
  1. {
  2. int b = (int)3.14;
  3. }

⒈ 浮点数会做无条件舍去,失去精确度

⒉ 可处理 object 转 int,但遇到 object 为 null 时会产生 error

⒊ 某些情况下,如 object 转型成 int,有时正常,但有时会无故发生 error,原因不明

⒋ 无法处理 string 转 int (程序中常会用到的功能)

⒌ 千万不可用来处理 char 类型,否则传回的是 ASCII 码,而不是字面上的数字

转义字符

c#中的转义字符:

\n ------------------------- 换行符
\r ------------------------- 回车符
\t ------------------------- 水平制表符
\b ------------------------- 退格符
\f ------------------------- 换页符
\0 ------------------------- 空字符
\" ------------------------- 双引号
\'''' -------------------------单引号
\\ -------------------------反斜杠

\a -------------------------警告

还有一个较特殊的,就是@号,只要语句前加@号,即表示@号后面的包括有转义符的都按不进行转义运算。

例如:

  1. string b1 = "It started,\"Four score and senven...\"";
  2. string b2 = @"It started,""Four score and senven...""";//<span style="color:#006600;">如果想继续在@后的句中表示双引号,那么两个双引号就代表一个双引号。</span>

黑马程序员-------.net基础知识二的更多相关文章

  1. 黑马程序员-------.net基础知识一

    一 初识.net  .net是一种多语言的编程平台,可以用多达几十种的语言来进行开发,而C#就是基于.net平台的其中一种开发语言. 它的特点是: ⒈多平台:该系统可以在广泛的计算机上运行,包括从服务 ...

  2. 黑马程序员_JAVA基础知识总结3

    ------- android培训.java培训.期待与您交流! ---------- Java源文件的扩展名是.java,编译之后生成.class的文件.所有的类都有一个共同的继承祖先Object类 ...

  3. 黑马程序员_JAVA基础知识总结2

    ------- android培训.java培训.期待与您交流! ---------- IDE ---> Itegrity Development Environment Java EE --- ...

  4. 黑马程序员-------.net基础知识四

    常量(静态常量------compile-time) 语法:const 类型 常量名 =常量值: 例: [csharp] view plaincopyprint? { const double PI= ...

  5. 黑马程序员-------.net基础知识三

    条件执行语句 if 语句 语法: [csharp] view plaincopyprint? if(条件) { 语句1;语句2:语句3: ··· } 执行过程: 先判断条件是否为true ,如果为tr ...

  6. 黑马程序员-------.net基础知识五

    方法(函数) 作用:用来重复代码,当我们在一个过程中反复的写了同样的代码,一般情况下,我们就可以把需要重复写的代码定义在方法中,用的时候只需调用即可 语法: [访问修饰符][static] 返回值类型 ...

  7. 黑马程序员+SQL基础(上)

    黑马程序员+SQL基础 ---------------<a href="http://edu.csdn.net"target="blank">ASP ...

  8. 黑马程序员+Winform基础(上)

    黑马程序员+Winform基础 ---------------<a href="http://edu.csdn.net"target="blank"> ...

  9. 黑马程序员Java基础班+就业班课程笔记全发布(持续更新)

    正在黑马学习,整理了一些课程知识点和比较重要的内容分享给大家,也是给自己拓宽一些视野,仅供大家交流学习,大家有什么更好的内容可以发给我 ,现有黑马教程2000G  QQ 1481135711 这是我总 ...

随机推荐

  1. Android AlertDialog 设置setSingleChoiceItems不显示列表的原因【setMessage和setSingleChoiceItems不能同时使用】

    今日写了个如题目的简单功能,结果列表不显示 无奈重写了一次代码发现setMessage和setSingleChoiceItems不能同时使用. 正确的如下: private void mobilePh ...

  2. 2. shell之shell配置文件

    1. shell配置文件的位置 最常用的shell有sh和bash等,此处只讲sh和bash 1.1. sh(Bourne Shell)配置文件主要有两个,分别为每个用户主目录中的.profile文件 ...

  3. FxCop

    下载地址:http://www.microsoft.com/en-us/download/details.aspx?id=8279 FxCop是一个代码分析工具,和StyleCop(代码规范)一起配合 ...

  4. Ubuntu GNOME 安装日语输入法(收集)

    原网址是:code.duffy.jp/add-japanese-input-to-gnome/ 1)在终端(Ctrl + Alt + t)输入:sudo apt-get install ibus-an ...

  5. Unity3D 之UGUI 切换开关(toggle)

    (toggle)开关能够实现通过点击实现开和关. 开关下面有两个游戏元素,一个是背景,一个是文字,背景是开关按钮的背景. 可以通过 Is ON开控制开关的开与关. Group -->分组,能够实 ...

  6. Linux操作系统安装Nvidia显卡驱动

    一直以来,Linux分支系统使用过程中都有驱动适配麻烦,完全适配的驱动也不多.对于Nvidia显卡而言,一般Linux各分支操作系统虽然提供了N卡开源驱动工程Nouveau,但是性能上还是有待提高.下 ...

  7. 16Aspx.com源码2013年10月到2013年12月详细

    创建时间FROM: 创建时间TO:   ExtJS合同管理信息系统源码 2013-12-13   [VS2008] 源码介绍: ExtJS合同管理信息系统源码浏览器兼容:IE,Firefox,谷歌等主 ...

  8. Unity 3D 文件导入出错误解决方法以及unity圣典离线版下载地址

    1.安装unity 时我选择了free版的,打开已有项目时出现如下错误提示. 解决方法:先把要导入的文件先拷贝到unity3d安装目录下对应的文件夹内,之后再返回unity3d软件,右键选择“导入”. ...

  9. c语言学习之基础知识点介绍(十五):函数的指针

    一.函数的指针的介绍 /* 函数指针: 函数的指针,本质上一个指针 指向函数的指针,就是一个函数指针. 回忆:我们写的源代码编译成二进制的指令集,一串交给CPU执行的指令 先存在内存里面,然后CPU读 ...

  10. Android SDK目录含义介绍

    Android SDK目录的具体结构: 1.add-ons:该目录下存放第三方公司为Android平台开发的附加功能系统. 2.build-tools:编译工具.保存着一些通用工具,比如aapt.ai ...