MOOC C#笔记(一):数据类型

C#笔记html

基础知识

一个C#程序主要包括如下部分:
命名空间声明(Namespace declaration)
一个 class
Class 方法
Class 属性
一个 Main 方法
语句(Statements)& 表达式(Expressions)
关于Main函数的一些注意事项:C#中Main()函数为何必须是静态的?
注释程序员

数据类型、变量与常量

程序的基本任务是:对数据进行处理。
数据分为变量(variable)与常量(literal)
int age=18;
变量的值能够改变,本质上是内存的空间,用来存储信息。
常量的值是固定的,直接写出来,称字面常量(literal)数据库

关于字面量、常量和变量有什么区别:

1,在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。几乎全部计算机编程语言都具备对基本值的字面量表示,诸如:整数、浮点数以及字符串;而有不少也对布尔类型和字符类型的值也支持字面量表示;还有一些甚至对枚举类型的元素以及像数组、记录和对象等复合类型的值也支持字面量表示法。
2,“常量”在程序运行时,不会被修改的量。换言之,常量虽然是为了硬件、软件、编程语言服务,可是它并非由于硬件、软件、编程语言而引入。
常量区分为不一样的类型,如2五、0、-8为整形常量,6.八、-7.89为实型常量,‘a’‘b’为字符常量。常量通常从其字面形式便可判断。这种常量称为字面常量或直接常量。
3,变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变量能够经过变量名访问。在指令式语言中,变量一般是可变的;但在纯函数式语言(如Haskell)中,变量多是不可变(immutable)的。在一些语言中,变量可能被明确为是能表示可变状态、具备存储空间的抽象(如在Java和Visual Basic中);但另一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变量”的准确外延。编程

变量命名(identifier,标识符)要遵照以下规则:

(1)不能是C#关键字。
(2)由字母、数组、下划线构成。
(3)第一个字符必须是字母或下划线。
(4)不要太长,通常不超过31个字符为宜。
(5)变量名最好不要与库函数、类名相同。
与C/C++相似,与C/C++同样C#是大小写敏感的。
变量命名方法:匈牙利命名法数组

数据类型

数据类型:本质上是数据存储方式及其能参与的运算的抽象。
如图:
数据类型
C#数据类型分两大类:
1.值类型(Value Type)
2.引用类型(Reference Type)
前者如:int,double,Point,Size,DataTime。
后者如:Button,Label,Book,Person。
二者的区别在于类型是直接存储在对应的空间内,而引用类型则在对应的位置存储一个指针(或者叫引用),该指针指向对应的数据。
任何变量都有类型。
值类型包括:
简单类型(Simple Type)
结构类型(Struct Type)
枚举类型(Enum Type)
引用类型包括:
类类型(Class Type)
接口类型(Interface Type)
委托类型(Delegate)
数组类型(Array Type)
注意:每种简单类型都有一个关键词
int至关于System.Int32
double至关于System.Double
bool至关于System.Boolean
string至关于System.String
(若是using System,则string至关于String)编程语言

关于数据类型的一些细节

整数类型又分为:
有符号 sbyte short int long 和87L,0x1F(注:没有八进制写法)
无符号 byte ushort uint ulong 如87UL
字符类型 char 如'a' '\uA0B1'表示Unicode'\n'(回车)
实数类型又分为:
float 如3.14F
double 如3.14 1.5E-3 3.14D(后面这个D能够省略)
十进制类型
Decimal 如120.50M
布尔类型
bool 如true false(小写)不能用0和1代替(区别于C/C++)ide

字符类型

char型数据用来表示一般意义上“字符”。
字符变量是用单引号括起来的单个字符。
char c='A';
C#字符采用Unicode编码,每一个字符占两个字节,于是可用十六进制编码形式表示
char c1='\u0061';
C#语言中还容许使用转义字符''来将后面的字符转变为其它的含义。
char c2='\n'; //表明换行符
转义字符与C语言中的相似,值得一提的是\r 与\n的不一样,\r表示回车,\n表示换行。函数

字符串类型

是引用类型,但对字符串常量有特殊处理。
字符串前可使用@,加了@的字符串能够换行写,能够不进行\转义,能够换行,双引号则用两个双引号表示一个双引号。
针对C++程序员来讲,引用类型与值类型是由其类型定义的,而不是由其使用决定的(不存在*&这些符号类指定类型的类型)。ui

C#新版本中的特殊类型

1.推断类型(C#3.0)
var a=1+2; var表示其类型又编译器推断,而不是本身指定。
2.Nullable类型(C#3.0)
int? a=32;能够有值能够没有值,在数据库中经常使用。
3.Dynamic(C#4.0)由DLR支持
编译时不检查,运行时才肯定,主要用于与COM组件或其余语言交互。编码

运算符与表达式

运算符

基本与C/C++相似,不赘述,多了一个字符串链接运算符:+。
+运算符两侧的操做数中只要有一个是字符串(String)类型,系统会自动将另外一个操做数转换为字符串而后在进行链接

表达式

表达式是符合必定语法规则的运算符和操做数的序列。
表达式有类型和值,对表达式中的操做数进行运算获得的结果称为表达式的值。该值的类型称为表达式的类型。
赋值时的默认类型转换与C/C++的原则是一致的,值得一提的是C#中的强制类型转换:
字符串转换成数值:
double.Parse(s) int.Parse(s)
数字转成字符串:
10.ToString() 使用方法ToString();
""+10; 使用字符链接运算符来把数字转换成字符串。
使用Convert
Convert.ToInt32(textbox1.Text)
Convert.ToDouble("123.45")
Convert.ToDateTime*("2019-10-01 14:00")

流程控制语句

结构化的程序设计的三种基本流程:顺序、选择、循环。

顺序语句

方法调用语句和赋值语句都为顺序语句(简单语句)
C#中没有表达式语句这一律念。

分支语句

if-else与C语言的if-else一 致。
在VS中按Ctrl+E+D(格式文档)
按Ctrl+E+F(格式化选中部分)
switch语句与C/C++不一样的是,变量能够为字符串类型。
另外若是在C#中switch语句不加break编译器会报错。

循环语句

循环五要素:
初始化部分
循环条件部分
循环体部分
迭代部分,咱们称为“循环改变”
结束后处理

C#中的数组(与C/C++大不相同)

C#中的数组是引用类型。
如下为数组的声明方式:
int[] a1;注意方括号写到变量名的前面
C#中声明数组时不能指定其长度(数组中元素的个数),这与C/C++不同。
每一个数组都有一个属性Length指明它的长度。
foreach语句能够方便的处理数组、集合中的各元素。(不能够在foreach中改变数组的内容,只读式遍历)。
C#中的多维数组与交错数组是不一样的概念,这与C/C++彷佛不一样,由于在C/C++中咱们通常把多维数组看作数组的数组,然而在C#中只有交错数组才被看作数组的数组。
多维数组和交错数组的区别详见:C# 多维数组 交错数组的区别

相关文章
相关标签/搜索