C#基本语法<一>_入门经典
基本信息
CIL和JIT
- CIL通用中间语言
- JIT just-in-time使得CIT代码仅在需要时才编译
程序集
- 包含可执行文件.exe和库函数.dll和资源文件,不必把程序集集中到一个地方,全局程序缓存
- 程序集完全自描述的,逻辑单元而不是物理单元
- 可执行代码和库代码使用相同程序集结构,可执行文件多了一个主程序入口点。
- 程序集的一个重要特征是它们包含元数据描述了对应代码中定义的类型和方法。
CLR
公共语言运行库CLR:包含实时编译器JIT,在程序运行时,JIT编译器会从IL代码生成本地代码,其他部分是垃圾回收器GC,调试器扩展和线程实用工具。垃圾回收器负责回收内存,调试扩展器允许在不同编程语言之间启动调试会话,线程实用工具负责在底层平台创建线程。
- 管理着正在执行的代码包括管理内存,处理安全以及跨语言调试
- 代码托管最重要的是内存回收机制
- winform基于像素
- wpf基于pirectX
CLR执行应用程序之前,编写好源代码都需要编译,编译分为两个阶段
- 将源代码编译成microsoft中间语言IL
- CLR将I编译成平台专用的的本地代码
clr还有一个类型加载器的类型系统,类型加载器负责从程序集中加载类型。
编译过程
- .net兼容语言编写程序,托管语言
- 将代码编译为中间代码CIL,这未必是单文件,可以有多个源代码文件,再把链接带一个程序集中,称之为链接
- 使用JIT编译为本机代码
- 在托管的CLR环境下运行本机代码
基本语法
注释
- /* */和一行//
- ///可以通过配置,将这些注释提取出来组成文档文件
命名空间
代码大纲功能
- #region Using directives
- #endregion,大纲的名字为Using directives
变量
- 先声明后使用
变量初始化:变量是类或结构中的字段,如果没有显式初始化,则创建这些变量时,其默认值就是0.方法的局部变量必须在代码中显示初始化。
整数
- sbyte System.SByte -128~127
- byte System.Byte 0~255
- short System.Int16 -32768~32767
- ushort System.UInt16 0~65535
- int System.Int32 -21亿~21亿
- uint System.UInt32 42亿
- long System.Int64 19位数字
- ulong System.UInt64 20位数字
浮点类型
- 位是最小数据单位,只能表示0-1
- 字节,8个二进制位构成1个字节,是存储空间的基本计量单位,
- 字:由若干字节构成,不同计算机有不同的字长,8位计算机一个字等于一个字节,16位一个字等于两个字节,字是计算机数据处理和运算的单位
- 1kb等于1024个字节
- 1M等于1024KB
- 1G等于1024M
- 1T等于1024G
- float System.Single 4字节
- double System.Double 8个字节
- decimal System.Decimal 16个字节
布尔和文本
- char System.Char Unicode 0~65535 2个字节
- bool System.Boolean 1个字节
- string System.String
转义字符
- ' 单引号 0x0027
- '' 双引号 0x0022
- \ 反斜杠 0x005c
- \0 空 0x0000
- \a 警告 0x0007
- \b 退格 0x0008
- \f 换页 0x000C
- \n 换行 0x0000A
- \r 回车 0x000D
- \t 水平制表符 0x0009
- \v 垂直制表符 0x000B
- @转义字符,避免大量使用\
全局变量:Program.全局变量,在声明变量前要进行初始化
常量:
- 常量必须初始化,指定值后不能更改。
- 常量总是隐式静态的,
值类型和引用类型:值类型存储在栈中,应用类型存储在堆中。值类型和引用类型互换要经过装箱拆箱,在传递函数参数时,值类型会进行复制,而引用相当于传递指针,返回值相同。引用类型由垃圾回收器进行回收,值类型不需要,超出其作用域就会在内存中删除。
ref:如果是结构类型使用ref传递参数,则变成传递引用,但如果是引用类型,即使参数在函数中变化了引用,新的应用还是会传递回去。ref传递的值要先初始化。
out:用法基本和ref一样,但传入的值只需要定义
可空类型:int? 和int,唯一的多开销是一个可以确定它是否为空 的布尔成员,值可以直接转换可空,int?=int;可空转换成值需要强制int=(int)int?;但如果为空会生成一个异常,最好的方法是int=int?.hasvalue?int?.value:-1;可以转换成较短短语int=int??-1
枚举也是值类型:默认情况下,枚举是int,也可以改变成其他整数类型,强制转换将int转换成枚举,当分配给常量是不同位时,flags属性需要枚举设置,获得所有枚举,var day in Enum.GetName(typeof(Color));
结构:值类型,不能继承,每个结构都自动由ValueType派生。
基本运算符
- 一目运算符
- 二目运算符
- =
- +=
- -=
- *=
- /=
- %=
- 运算符优先级
- ++,--(前缀)
C#基本语法<一>_入门经典的更多相关文章
- python入门经典_好资源送不停
Python入门经典(2K超清_送书) https://study.163.com/course/courseMain.htm?courseId=1006183019&share=2& ...
- 正经学C#_介绍与其编写基础:《c#入门经典》
本文所讲内容,均可在<c#入门经典>中可以查询.如有错误,敬请指出.谢谢! C#:全称C Shar.是微软.Net Framework平台下最为主要的客户语言之一.个人理解,c#是微软最为 ...
- 正经学C#_位移与其位移运算符[c#入门经典]
在c#入门经典一书中,最为糟糕的一节就是位移了,完全没有讲明白,也没有说全,似乎只是轻轻点了一下何为位移,带了两次原码和补码,完全不理会是否明白不明白.这一点这本书很差.因为此书说了,在大多数应用开发 ...
- 强烈推荐visual c++ 2012入门经典适合初学者入门
强烈推荐visual c++ 2012入门经典适合初学者入门 此书循序渐进,用其独特.易于理解的教程风格来介绍各个主题,无论是编程新手,还是经验丰富的编程人员,都很容易理解. 此书的目录基本覆盖了Wi ...
- 《c#入门经典第五版》简介及pdf电子书网盘下载地址(收藏)
<C#入门经典(第5版)>全面讲解C# 2010和.net架构编程知识,为您编写卓越C# 2010程序奠定坚实基础.C#入门经典系列是屡获殊荣的C#名著和超级畅销书.最新版的<C#入 ...
- 【推荐图书】+ 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例+C#入门经典等
[推荐图书]+ 基于Nios II的嵌入式SoPC系统设计与Verilog开发实例+C#入门经典等 3赞 发表于 2016/7/4 21:14:12 阅读(1921) 评论(3) 初次接触FPGA,到 ...
- 【C#入门经典视频教程】-第001课-C#入门-认识C#
C#入门-认识C# C ---> C++ --> C# (C++++) j++ j++ 有一门可能比这个C#更流行的语言 java 使用的教程:c#入门经典第五版 操作系统:windows ...
- [转载]HTML5开发入门经典教程和案例合集(含视频教程)
http://www.iteye.com/topic/1132555 HTML5作为下一代网页语言,对Web开发者而言,是一门必修课.本文档收集了多个HTML5经典技术文档(HTML5入门资料.经典) ...
- c语言入门经典(第5版)
文章转载:http://mrcaoyc.blog.163.com/blog/static/23939201520159135915734 文件大小:126MB 文件格式:PDF [点击下载] C ...
随机推荐
- sqlserver 行转列、字符串行转列、自动生产行转列脚本
行转列,老生常谈的问题.这里总结一下网上的方法. 1.生成测试数据: CREATE TABLE human( name ), --姓名 norm ), --指标 score INT , --分数 gr ...
- 在Windows10中安装与配置Nginx
一.使用环境: Windows 10 1909 nginx 1.16.1 二.安装与配置: 1. 打开链接,http://nginx.org/en/download.html 下载稳定版本nginx ...
- JS---最终版本--封装缓动(变速)动画函数---增加任意多个属性&回调函数&层级&透明度
封装缓动(变速)动画函数---增加任意多个属性&回调函数&层级&透明度 相较之前的,增加了2个判断,第一个判断是不是透明度,第二个判断是不是zindex, 都不是,就只是普通属 ...
- Linux文本处理三剑客之sed
推荐新手阅读[酷壳]或[骏马金龙]开篇的教程作为入门.骏马兄后面的文章以及官方英文文档较难. [酷壳]:https://coolshell.cn/articles/9104.html [骏马金龙-博客 ...
- DiskCatalogMaker for Mac常见问题解答
DiskCatalogMaker for Mac是Mac上简单实用的磁盘管理工具,可以帮助您对多张光盘使用批量扫描模式, 生成缩略图图像选项,更加清晰,并请将其快速编目引擎与其他编目人员比较,在本篇文 ...
- NLP标记集资料
title: 标记集 tags: grammar_cjkRuby: true --- LTP分词标注集 标记 含义 举例 B 词首 __中__国 I 词中 哈__工__大 E 词尾 科__学__ S ...
- C# 中的基本数值类型
在之前的文章中(地址:https://www.vinanysoft.com/c-sharp-basics/introducing/),以 HelloWorld 程序为基础,介绍 C# 语言.它的结构. ...
- Electron npm install 常见错误(Linux)
Linux版本 Ubuntu 12.04 (32bit) 安装Git sudo apt-get install git 生成ssh key #查看有没有sshkey cd ~/.ssh #生成 ssh ...
- TP验证规则Validate
use think\Validate; <?php namespace app\common\model; use think\Validate; use think\Db; class Inv ...
- C#&.Net干货分享- 构造SMSWebChineseApi对接第三方短信平台
你们想要的短信对接,要舍得点钱哦.... /// <summary> /// http://sms.webchinese.cn/api.shtml /// </summa ...
- python入门经典_好资源送不停
- ++,--(前缀)