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#的特定语言功能取决 ...
随机推荐
- linux shell语言编程规范安全篇之通用原则【转】
shell语言编程规范安全篇是针对bash语言编程中的数据校验.加密与解密.脚本执行.目录&文件操作等方面,描述可能导致安全漏洞或风险的常见编码错误.该规范基于业界最佳实践,并总结了公司内部的 ...
- 005_MAC下的VMware fushion快捷键(折中)
由于MAC和VMware Fushion虚拟机之间有一些快捷键的映射,所以Windows虚拟机就找了一个折中的方案.现总结MAC下的win常用快捷键==> <1>最小化窗口(Alt ...
- 公司xenserver搭建的使用
[root@xenserver ~]# ls -l /dev/disk/by-path/total 0lrwxrwxrwx 1 root root 9 Jan 19 16:33 pci-0000:0 ...
- 四、springcloud之服务调用Feign(二)
一.Fegin的常见应用 Feign的Encoder.Decoder和ErrorDecoder Feign将方法签名中方法参数对象序列化为请求参数放到HTTP请求中的过程,是由编码器(Encoder) ...
- samba和SELINUX 冲突
在使用Samba进行建立Window与Linux共享时,要是不能访问,出现“您可能没有权限使用网络资源”. setsebool -P samba_enable_home_dirs on setsebo ...
- js面试题之求数组最值
今天继续分享js常见的面试题,求数组最大值,最小值,这里列举4种常见解法,还有其他方法也可以实现,读者知道可以私信我,我将把意见列举到博客中,欢迎提出意见. 第一种,利用数组排序 var arr=[3 ...
- java基础74 XML解析中的SAX解析相关知识点(网页知识)
1.SAX解析工具 SAX解析工具:是Sun公司提供的,内置JDK中.org.xml.sax.* 点击查看: DOM解析相关知识:以及DOM和SAX解析的原理(区别) 2.SAX解析的 ...
- Codeforces 798C - Mike and gcd problem(贪心+数论)
题目链接:http://codeforces.com/problemset/problem/798/C 题意:给你n个数,a1,a2,....an.要使得gcd(a1,a2,....an)>1, ...
- ROS二进制日志包 ROS binary logger package
原文网址: 1 http://www.ros.org/news/2017/02/ros-binary-logger-package.html 2 https://github.com/CNR-ITIA ...
- master..xp_fileexist
declare @sql varchar(800) set @sql='E:\temp.dbf'create table #tb(a bit,b bit,c bit) insert into #t ...