C#笔记

基础知识

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

数据类型、变量与常量

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

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

1,在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数、浮点数以及字符串;而有很多也对布尔类型和字符类型的值也支持字面量表示;还有一些甚至对枚举类型的元素以及像数组、记录和对象等复合类型的值也支持字面量表示法。
2,“常量”在程序运行时,不会被修改的量。换言之,常量虽然是为了硬件、软件、编程语言服务,但是它并不是因为硬件、软件、编程语言而引入。
常量区分为不同的类型,如25、0、-8为整形常量,6.8、-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++)

字符类型

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

字符串类型

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

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# 多维数组 交错数组的区别

MOOC C#笔记(一):数据类型的更多相关文章

  1. MOOC JAVA笔记

    MOOC JAVA笔记 1.基础了解 JDK是开发人员安装的,它提供了开发java程序的必须工具 JRE是普通用户安装的,它提供了java的运行环境 JVM是java虚拟机运行程序的核心 2.程序的移 ...

  2. MOOC python笔记(二)python中的数据类型和基本语句

    python数据类型 数字类型 整数(int) 与数学中整数概念一致(数字大小没有限制,这和其他语言不同),整数可正可负,默认情况下,整数采用十进制.其他进制需要增加相应的引导符号. 如果是二进制在前 ...

  3. es6学习笔记--新数据类型Symbol

    学习了es6语法的symbol类型,整理笔记,闲时复习. Symbol 是es6新增的第七种原始数据类型(null,string,number,undefined,boolean,object),是为 ...

  4. 第3次作业-MOOC学习笔记:Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 4.提供图片或网站显示的学习进 ...

  5. 第三次作业-MOOC学习笔记:Python网络爬虫与信息提取

    1.注册中国大学MOOC 2.选择北京理工大学嵩天老师的<Python网络爬虫与信息提取>MOOC课程 3.学习完成第0周至第4周的课程内容,并完成各周作业 第一周 Requests库的爬 ...

  6. MySQL学习笔记之数据类型

    数据类型在所有的数据库使用当中,都是避免不了的部分.以前每次写SQL语句,对于定义成哪种数据类型总是迷迷糊糊,今天就来彻底弄清.以下介绍仅针对MySQL 5.5以上版本. 一.字符串类型 1.char ...

  7. Java学习笔记三——数据类型

    前言 Java是强类型(strongly typed)语言,强类型包含两方面的含义: 所有的变量必须先声明后使用: 指定类型的变量只能接受预支匹配的值. 这意味着每一个变量和表达式都有一个在编译时就确 ...

  8. Redis学习笔记1-Redis数据类型

    Redis数据类型 Redis支持5种数据类型,它们描述如下: Strings - 字符串 字符串是 Redis 最基本的数据类型.Redis 字符串是二进制安全的,也就是说,一个 Redis 字符串 ...

  9. javascript 红宝书笔记之数据类型

      typeof   检测给定变量的数据类型,通过typeof来区分函数和其它对象   var message = 'some string'; console.log(typeof(message) ...

随机推荐

  1. python url码转换 chr()码

    爬虫生成带搜索词语的网址 1.字符串转为url编码 import urllib poet_name = "李白" url_code_name = urllib.quote(poet ...

  2. 第08组 Alpha冲刺(6/6)

    队名:955 组长博客:https://www.cnblogs.com/cclong/p/11913269.html 作业博客:https://edu.cnblogs.com/campus/fzu/S ...

  3. node.js 自启动工具 supervisor

    supervisor 会不停的watch 你应用下面的所有文件,发现有文件被修改,就重新载入程序文件这样就实现了部署,修 改了程序文件后马上就能看到变更后的结果.麻麻再也不用担心我的重启 nodejs ...

  4. JWT了解与实战

    最近在使用JWT做一个单点登录与接口鉴权的功能,正好可以对JWT有深一步的了解. 一.JWT使用场景: 1. 授权:用户登录后,每个请求都包含JWT,允许用户访问该令牌允许的路由.服务和资源.单点登录 ...

  5. 《微信小程序商城开发实战》唐磊,全网真实评价截图,不吹不黑,全部来自网友的真实评价

    偶尔看了下网友的销量和评价,感觉还不错,因为市面上大多关于小程序的书籍可能写的不够全面,要么只是点到为止的大致罗列,要么就是只简单介绍一下小程序的 界面设计这块.这样很难给学习小程序开发的人一个完成的 ...

  6. Windows系统中CreateFileMapping实现的共享内存及用法

    在32位的Windows系统中,每一个进程都有权访问他自己的4GB(232=4294967296)平面地址空间,没有段,没有选择符,没有near和far指针,没有near和far函数调用,也没有内存模 ...

  7. Chrome:不受信任的证书----openssl签发带Subject Alternative Name的证书

    Chrome下自签名证书提示无效的问题 发现chrome验证证书很严格,必须带有Subject Alternative Name.签发csr时,修改openssl.cnf : vi /etc/ssl/ ...

  8. android Studio keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件

    //android Studio  keytool' 不是内部或外部命令,也不是可运行的程序 或批处理文件 遇到这个问题好久了,一直没解决今天搜集了大量的资料,有的说什么Java没配置好,不是扯犊子吗 ...

  9. 两行命令查看自己笔记本连接的wifi密码

    打开cmd.exe窗口 第一行命令 netsh wlan show profiles 可以查看所有曾经连接过的wifi 第二命令 netsh wlan show profiles "vivo ...

  10. Eclipse 修改(重定向)SVN地址

    由于SVN服务器IP变了,需要重定向SVN的路径 1.点击右上角1位置的按钮,然后选择需要打开的窗口(SVN资源库) 2.右击SVN资源库中的项目,选择重定向,然后修改新的URL即可 1. 进入本地s ...