C#学习日记03---数据类型
来源:互联网 发布:python爬虫框架scrapy 编辑:程序博客网 时间:2024/05/21 08:59
C#数据类型
C#语言是一种强类型的语言,在程序中用到的变量、表达式、数值等都必须要有类型。对于程序中每一个用于保存信息的量,使用时我们都必须声明他的数据类型,以便编译器为他分配内存空间。C#的数据类型可以分为两大部分:值类型和引用类型(常用的2个 String 和 Object)。
由于C#强类型的特点,因此在C#中一种数据类型也就是一个类。比如 整型 int他的真名为System.Int32();
基本数据类型 (别名)FCL数据类型(真名)说明objesct System.Objest所有其它类型的基类型stringSystem.StringUnicode字符序列decimalSystem.Decimal有28位小数的高度精度浮点数boolSystem.Booleantrue或falsechar System.Char16位Unicode字符byte System.Byte 8位无符号整型shortSystem.Int16 16位有符号整型int System.Int3232位有符号整型long System.Int64 64位有符号整型ushort System.Uint1616位无符号整型uintSystem.Uint3232位无符号整型ulong System.Uint64 64位无符号整型single(float)System.Single单精度浮点类型doubleSystem.Double 双精度浮点类型sbyte System.Sbyte8位有符号整型
由上表我们看的出,基本类型直接映射到基类库中的类型,因此两者之间可以互换,也就是说我们定义一个int型的变量,
int x = 12; (发现与C/C++定义数据类型类似)
可以写成这样: System.Int32 x = new System.Int32(12);
不同的类型定义的范围也有所不同:
ushort0~2^16-1uint0~2^32-1ulong0~2^64-1 char表示一个16位的字符
float数据类型用于较小的浮点数,因为它要求的精度较低。
double数据类型比float数据类型大,提供的精度也大一倍(15位)。在C#编译器一般默认小数类型为double类型,
如果想指定该值为float,可以在其后加上字符F(或f),如:
float f = 12.3F;
decimal类型专门用于进行财务计算,高精度(28位)。
要把数字指定为decimal类型,可以在数字的后面加上字符M或(m),如:
decimal d=12.30M;
C#变量名命名规则:
1)、由字母、数字或下划线"_"组成
2)、必须由“字母”或下划线"_"开头,不能以数字开头
3)、不能是c#中的关键字 如:int、string、bool、Main、class等
4)、区分大小写 如:小写的a 和 大写的A 是两个变量
下面就写个例子吧,要求由用户输入 姓名 年龄 身高 工资 性别然后输出“我的名字是:XX,性别是:XX,今年XX岁,身高是:XX,工资是:XX”
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Example{ class Program { static void Main(string[] args) { String name; //定义姓名为name char sex; //定义性别 uint age; //年龄(年龄不能为负数) double hight; //身高 decimal salary;//工资 Console.WriteLine("你叫什么名字啊?"); name = Console.ReadLine(); //输入姓名 Console.WriteLine("你的性别是:"); sex = Console.ReadKey().KeyChar; //写入性别 Console.WriteLine(); //换行 Console.WriteLine("你多大了?"); age =uint.Parse(Console.ReadLine()); //写入年龄(uint.Parse()是将读入的String类型转为uint类型,ReadLine() //的返回值是String 类型) Console.WriteLine("多高啊?"); hight = double.Parse(Console.ReadLine()); //写入身高 Console.WriteLine("工资多少呀?"); salary = decimal.Parse(Console.ReadLine()); //写入工资 Console.WriteLine("我叫{0},是个{1}孩子,今年{2}岁了,我的身高是{3}米,工资有{4}元",name,sex,age,hight,salary); //输出信息 } }}
得到的结果是:
唉! 又是这种黑面框,黑咕隆咚的丑死,以后学了Winform应该会好点吧 !
基于02日记中的输入与输出,通过查阅又get了一项新的输出技能,在上面的最后一行代码中有 {0},{1},{2}。。。可以有很多个,这一对“{}”叫占位符,,,(以下是我个人理解)就是我们在程序输出的时候挖 的一个又一个坑,然后再用第一个参数(“”中的内容是一个String类型的参数,参数与参数之间用逗号“,”隔开)后面的参数按顺序去填好 (有点俗阿)。
本着学无止境的探索精神,我又对他进行了一番探索; 当我们用占位符 的时候一定要按照{0},{1},{2}......这个顺序来吗?我试着改一下还是以上的代码,,后面的顺序改为这样 {0},{3},{1},{2},{10}。编译没有抱错但是运行输出的时候打印不出来,可能就是那个10的问题,原来不能跳着挖坑的,那就这样 {0},{3},{1},{2},{4},这次没跳了,交换了顺序,编译没错能运行,但是结果是这样:
完全丧失常理 了 结果乱了。仔细观察后发现其实那个0,1,2,3,4是 给后面参数编的序号,{}里面是谁的序号就调用谁。
本着每日三省吾身的好学精神我又有疑惑了,在02日记中我输出aaa与bbb的时候我用了双引号 “” 表示字符串,但是如果我想输出双引号该咋办呢?想了好久,去网上查了下才知道 可以用\加符号就可以输出啦,于是我写了个不要脸的程序:
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Example{ class Program { static void Main(string[] args) { Console.WriteLine("女神对我说:\"I Love You!!!\""); } }}
结果是:
(哈哈,,没羞没臊的)总之 双引号是成功输出来了
本着做一个勇于探索的人,我又发现:输出双引号的时候我用 \ 来不让他转义 ,那要是我想输出 \ 该咋办呢?
可能是在 \ 前面再加个 \ 试了下没错 \\能够 输出 \ 所以要输出\\就得 写\\\ 以此类推 感觉挺麻烦的,于是又找了个一劳永逸
的方法 “@" ,,,Console.WriteLine(@"\\\");
结果输出 \\\ 不变
- C#学习日记03---数据类型
- C#学习日记04---数据类型 之 整数类型
- C#学习日记05---数据类型 之 布尔类型
- C#学习日记06---数据类型 之 浮点数类型
- C#学习日记07---数据类型 之 decimal类型
- C#学习日记08---数据类型 之 字符类型
- C#学习日记09---数据类型 之 结构(Struct)类型
- C#学习日记11---数据类型 之 枚举(enum)类型
- C#学习日记12---数据类型 之 引用类型(前言)
- 学习日记-C语言数据类型
- c# 工作学习日记
- C#学习日记
- C#学习日记1
- C#学习日记 链表
- C#学习日记 StringBuilder
- C#学习日记 字典
- C#学习日记 指针
- 黑马程序员——C#语言学习日记之基本数据类型
- 关于hashmap和hashset的一些思考和实验
- hdoj 1109 粒子群优化算法(PSO)
- 【BZOJ】【P4291】【PA2015】【Kieszonkowe】【题解】【...】
- maven3常用命令、java项目搭建、web项目搭建详细图解
- c#Winform记事本双击打开文件
- C#学习日记03---数据类型
- Light oj 1316 - A Wedding Party(状压dp)
- 回归分析
- 动态规划简单例子--象棋步骤
- 多重继承
- 华为手机调试Android程序崩溃不打印Log
- javaweb信息化门户网站
- Coursera_Stanford_ML_ex3_多标度分类和神经网络初步 作业记录
- Objective-C浅拷贝和深拷贝