C#高级编程9-第2章 核心C#
- C#基础
- 使用C#命名编译器csc.exe,编译C#程序
- 变量
- 变量一般初始化后才能使用
- 类型判断弱类型var,根据初始值判断类型,
- 变量作用域,可以访问该代码的区域
- 类中定义的成员变量和属性,作用在类中
- 局部变量声明在方法内或者括号代码块的作用域中
- 循环中声明的变量,作用在循环内
- 局部变量的作用域会发生冲突,同名局部变量在同一作用域内不能声明2次
- 字段和局部变量的作用域会发生冲突,同一类型级别下,不能声明字段与变量名相同。
- 常量
- 使用const修饰,必须初始化时赋值,一旦赋值则不能修改,它是静态的成员变量,一般用做避免修改的值
- 预定义数据类型
- 值类型和引用类型
- 值类型存储在堆栈上,引用类型存在托管堆上.
- 值类型有int,string,float,decimal,double结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型
- 引用类型有数组,用户定义的类、接口、委托,object,字符串
- CTS类型
- CTS类型值不是定义在C#语言中,是定义在.NET FrameWork核心类库中,所以是预定义类型
- 预定义值类型
- 整型、浮点型、字符类型、布尔类型
- 预定义引用类型
- object类型和string类型
- object类型是其他类型的父类
- 值类型和引用类型
- 流控制
条件语句if
if可以有很多分支,满足分支的条件,则执行分支里面的事件,else否则执行的事件
switch固定值开关,满足条件值则执行满足条件的一个或多个事件。
循环for,foreach,while,do-while
for循环,针对索引值的遍历,分为初始化,表达式(满足迭代的表达式,满足则进行下一次),迭代(递增循环计数器);执行顺序:先初始化,再判断是否满足迭代表达式,执行事件,计数
foreach循环,面向对象的遍历,直接针对值的遍历
while循环,针对表达式的遍历,循环前无法知道执行语句块的次数
do-while循环,先执行事件再进行逻辑判断
一般用for和foreach遍历
- 跳转语句goto,先执行标签语句,再执行下一句,先执行num=8,再执行num=9
- goto Tag1:
- num=9;
- Tag1:
- num
- 循环结束语句break,中断循环操作
- 循环迭代语句continue,结束本次操作,执行下一轮操作
- 方法返回语句return,结束当前方法的继续操作,返回到调用的地方进行下一步操作,可附带当前方法操作结果值.
- 枚举
- 用户定义的整数类型
- 枚举组织了一系列的数据值,可以包含描述值,方便引用
- 命名空间
- 类型的组织,类型的作用域
- 命名空间可以嵌套,同一个项目里允许定义其他命名空间。interneal修饰符指定了命名空间的访问域。
- using语句,其他命名空间的引用,在实际项目开发中除了.NET FrameWork本身引用之外.需要添加该引用之后才能在代码中引用
- 命名空间过长,允许以别名进行调用.using alias=System.Data 调用:alias.DataTable
- Main方法
- C#程序运行入口
- 一个C#程序不同域之间不允许多个Main方法
- Main方法参数args是一个字符串数组,使用这个数组可以访问命令行传过来的选项
- C#编译
- 使用C#命名编译器csc.exe,编译C#程序,编译示范语句:csc /t:library MathLibrary.cs
- 其他语句如下:
- 控制台I/O
- 有三种C#程序读写数据的方法Write、WriteLine、ReadLine;都属于Console类的方法.Write方法直接输出控制台信息,WriteLine输出后进行了换行,ReadLine输入信息
- 输出的预定义数据类型字符串格式
- 注释
- 代码的说明
- 有3种注释
- //单行注释
- /**/多行注释
- ///文档注释
- 注释标签列表
- C#预处理指令
- 方法代码编写
- 指令不可执行,以#符号标识
- #define和#undef不属于代码一部分,旨在于定义名称的符号,需要配合其他指令使用,指令必须放在源文件开头位置
- #if,#else,#elif,#endif流程指令,方便调试.
#define定义在源代码最上面,#define定义的符号标签1、标签2里面的代码会执行,标签3里面的代码不会执行.
- #warning和#error编译器运行到这个指令时,会警示和提示错误.之和编译继续进行.
#if DEBUG
#warning "debug状态"
#elif RELEASE
#warning "Release状态"
#else
#error "什么状态"
#endif- #region和endregion给一个代码块起一个名字,方便分类和查找
- C#编程规则
- 标识符规则,标识符给类、类成员、变量定义的名称
- 允许包含数字,但是只能以字母或下划线开头
- 不能是.NET FrameWork定义的关键字,比如int,string
- 用法约定
- 命名约定一般以Pascal规则,首字母大写,减少下划线连接的单词
- 私有成员都是小写camel形式.
- 类私有字段以"_"开头或者小写字母开头
- 方法参数都是小写camel形式.
- 名称风格需保持一致
- 命名空间以公司名称为前缀,软件开发名为后缀
- 属性设置如果逻辑过多,最好使用方法代替,如果属性只需要读取值,就不用使用写的属性
- 标识符规则,标识符给类、类成员、变量定义的名称
C#高级编程9-第2章 核心C#的更多相关文章
- 读《C#高级编程》第1章问题
读<C#高级编程>第1章 .Net机构体系笔记 网红的话:爸爸说我将来会是一个牛逼的程序员,因为我有一个梦,虽然脑壳笨但是做事情很能坚持. 本章主要是了解.Net的结构,都是一些概念,并没 ...
- C#高级编程9 第17章 使用VS2013-C#特性
C#高级编程9 第17章 使用VS2013 编辑定位到 如果默认勾选了这项,请去掉勾选,因为勾选之后解决方案的目录会根据当前文件选中. 可以设置项目并行生成数 版本控制软件设置 所有文本编辑器行号显示 ...
- C#高级编程9 第18章 部署
C#高级编程9 第18章 部署 使用 XCopy 进行部署 本主题演示如何通过将应用程序文件从一台计算机复制到另一台计算机来部署应用程序. 1.将项目中生成的程序集复制到目标计算机,生成的程序集位于项 ...
- C#高级编程9 第16章 错误和异常
C#高级编程9 第16章 错误和异常 了解这章可以学会如何处理系统异常以及错误信息. System.Exception类是.NET运行库抛出的异常,可以继承它定义自己的异常类. try块代码包含的代码 ...
- C#高级编程笔记之第二章:核心C#
变量的初始化和作用域 C#的预定义数据类型 流控制 枚举 名称空间 预处理命令 C#编程的推荐规则和约定 变量的初始化和作用域 初始化 C#有两个方法可以一确保变量在使用前进行了初始化: 变量是字段, ...
- C#高级编程9 第14章 内存管理和指针
C#高级编程9 内存管理和指针 后台内存管理 1) 值数据类型 在处理器的虚拟内存中有一个区域,称为栈,栈存储变量的浅副本数据,通过进入变量的作用域划分区域,通过离开变量的作用域释放. 栈的指针指向栈 ...
- python高级编程(第12章:优化学习)1
# -*- coding: utf-8 -*-# python:2.x__author__ = 'Administrator'#由于5,6,7,8,9,10,11主要是在包,测试之类的学习所以这边就不 ...
- ASP.NET MVC5 高级编程-学习日记-第一章 入门
1.1 ASP.NET MVC 简介 ASP.NET是一种构建Web应用程序的框架,它将一般的MVC(Model-View-Controller)模式应用于ASP.NET框架. 1.1.1 MVC模式 ...
- 《asp.net mvc3 高级编程》第三章 视图
一.视图的作用 视图的职责是向用户提供界面.从ASP.NET MVC3开始,视图数据也可以通过ViewBag属性访问.例如:ViewBag.Message 就等于ViewData["Mess ...
- C#高级编程笔记之第一章:.NET体系结构
1.1 C#与.NET的关系 C#不能孤立地使用,必须与.NET Framework一起使用一起考虑. (1)C#的体系结构和方法论反映了.NET基础方法论. (2)多数情况下,C#的特定语言功能取决 ...
随机推荐
- static, const 和 static const 变量的初始化问题
const 常量的在超出其作用域的时候会被释放,但是 static 静态变量在其作用域之外并没有释放,只是不能访问. static 修饰的是静态变量,静态函数.对于类来说,静态成员和静态函数是属于整个 ...
- mysql -> 事务&事务锁_09
事务的特性 redo undo 锁的隔离级别
- Bootstrap FileInput中文API文档
Bootstrap FileInput中文API整理 这段时间做项目用到bootstrap fileinput插件上传文件,在用的过程中,网上能查到的api都不是很全,所以想着整理一份比较详细的文档, ...
- 使用gradle编译安卓APK
一.安装JDK 在安装Gradle之前需要先安装JDK,由于安装的是Gradle是4.4所以需要安装JDK1.8. 之前编译总是提示如下错误就是由于先安装的jdk1.7然后安装的1.8造成的,在Gra ...
- 一篇文章读懂开源web引擎Crosswalk-《转载》
前言 Web技术的优势早已被广大应用开发者熟知,比如可与云服务轻松集成,基于响应式UI设计的精美布局,高度的开放性,跨平台能力, 高效的分发与部署等等.伴随着移动互联网的快速发展与HTML5技术的逐步 ...
- VFS,super_block,inode,dentry—结构体图解
总结: VFS只存在于内存中,它在系统启动时被创建,系统关闭时注销. VFS的作用就是屏蔽各类文件系统的差异,给用户.应用程序.甚至Linux其他管理模块提供统一的接口集合. 管理VFS数据结构的组成 ...
- 2016-2017-2 20155309南皓芯《java程序设计》第九周学习总结
教材内容介绍 一 JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据库厂商则对接口进行操作,开发人员无须接触底层数据库驱动程序的差异性 JDBC标准分为两个部分:J ...
- SourceTree 3.0.17如何跳过注册进行安装? — git图形化工具(一)
SourceTree 3.0.17个人版本的尝试跳过注册方式好几次都没成功,于是下载了企业版本https://www.sourcetreeapp.com/enterprise. 安装过程: 1.首次点 ...
- Redis数据类型之Set(四)
前言:set类似于数学上面的集合概念,包含的元素无序,不能重复,能进行交.并.差操作. 一.内部原理 set数据结构,也是随着元素数目的多少而变化.当set中添加 ...
- day5作业购物商城+ATM
模拟实现一个ATM + 购物商城程序 1.额度 15000或自定义 2.实现购物商城,买东西加入购物车,调用信用卡接口结账 3.可以提现,手续费5% 4.每月22号出账单,每月10号为还款日,过期未还 ...