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#的特定语言功能取决 ...
随机推荐
- sql的主键,int类型,自增,自动编号到了规定最大数,接下来数据库会怎么做
答案:它会从1开始重新编号,但是避开已经重复的值.
- 编译环境搭建:Makefile
前言 长久以来,笔者一直想用一种管理工具,将所编写的测试程序.算法代码以及工程代码统一管理起来.因为有些是用Java写的有些是用C++写的.虽有想法,但却无行动.这又让我想起了昨天晚上看到一部电影里所 ...
- java 使用内部类的理由
每个内部类都能独立地继承自一个(接口的)实现,所以无论外围类是否已经继承了某个(接口的)实现,对于内部类都没有影响 内部类有效的实现了多重继承,也就是说,内部类允许继承多个非接口类型(类或抽象类) 如 ...
- MySql数据库 主从复制/共享 报错
从 获取不到 共享主的数据, 错误信息: Waiting for master to send event 解决方案: // 1. 从V表获取PrNo的数据 select * from Vendor_ ...
- ROS新动态获取网址汇总
ROS新动态获取网址汇总 1 planet ROS http://planet.ros.org/ 2 ROS news http://www.ros.org/news/ 3 ROS-Industria ...
- centos7.3 chrome 安装
/etc/yum.repos.d/目录下新建文件google-chrome.repo,向其中添加如下内容: [google-chrome] name=google-chrome baseurl=htt ...
- centos7 关闭默认firewalld,开启iptables
编者按: 对于使用了centos6系列系统N年的运维来说,在使用centos7的时候难免会遇到各种不适应.比如防火墙问题.本文主要记录怎么关闭默认的firewalld防火墙,重新启用iptables. ...
- bzoj 1831
思路:随便猜一猜填的数字是不下降的,反证很好证明,然后就没了.. #include<bits/stdc++.h> #define LL long long #define fi first ...
- 使用odbc时报错,驱动程序和应用程序之间的体系结构不匹配
当出现这个问题时说明:ODBC程序中使用的是32位的dsn,但本身机器是64位,所以要运行 C:\Windows\SysWOW64\odbcad32.exe来改变本身机器使用的odbc
- LAMP环境使用Composer安装Laravel
安装Composer 因为使用的Ubuntu服务器,所以我们使用apt安装: 1 $ sudo apt install composer 安装Laravel 首先创建一个项目目录,进入新目录使用Com ...