第二章:核心C#
变量
如果在一条语句中声明和初始化了多个变量,那么所有的变量都具有相同的数据类型
Int x=10,y=20;
变量使用前需要赋初始值
声明不同类型的变量需要单独的语句。
变量的初始化
变量时类或者结构中的字段,如果没有显式的初始化,创建这些变量时,其默认值就是0.
方法的局部变量必须在代码中显示的初始化,之后才能在语句中使用它们的值。
C#中初始化应用类型的数据时需要使用new关键字。
类型推断
1. 类型推断是使用var关键字
2. 变量必须初始化(否则编译器没有推断变量类型的依据)
3. 初始化器不能为空
4. 初始化器必须放在表达式中
5. 不能把初始化器设置成一个对象,除非在初始化其中创建了一个新的对象。
6. 声明的变量推断出类型后,就不能改变变量的类型了变量类型确定后就要遵循其他变量类型遵循的强类型化规则。
变量的作用域
变量的作用域是可以访问该变量的代码区域。
常量
在声明变量时前面加上const,就可以把该变量指定为一个常量。
常量必须在声明时初始化
常量的值必须在编译时用于计算
常量实际上是静态的,但,注意不允许在常量声明中包含修饰符static如果需要这么做,应该使用只读字段。
常量替代了难读的数字和字符串使程序易于阅读。
常量是程序易于修改。(销售税率发生变化6%变到8%)只需要修改变量的初始值即可
常量更容易避免让程序出现错误。
预定义数据类型
值类型和引用类型
值类型直接存储其值
应用类型存储对值的引用
存储位置不同:
值类型存储在堆栈中
引用类型存储在托管堆上
CTS类型
在C#中声明一个int类型的数据时声明的实际上是.net结构System。Int32的一个实例。
可以在语法上吧基本数据类型看做是支持某些方法的类。
C#有15个预定义的类型,其中13个值类型,两个引用类型(string和object)
C#支持8个预定义整数类型
Float f=23.30f;
Decimal类型的数据用于财务计算但是decimal不是基本类型,所以计算时使用该类型会有性能损失。
Decimal d=13.30M;
预定义的用用类型
Object 可以使用object引用绑定任何子类型的对象
Object执行许多一般用途的方法。(Equals(),GetHashCode(),GetType(),ToString()等等)。
String :虽然string是应用类型但是与其它引用类型在常见的操作上又有一些差别(字符串是不可变的:修改一个字符串就会创建一个全新的string对象而另一个字符串不发生任何变化)——实际是运算符重载的结果
转义字符的使用
String filepath=”C://ProCSharp//First.cs”;
String filepath=@”C:/ProCSharp/First.cs”;
流控制
switch (integerA)
{
case 1:
Console.WriteLine("1");
Break;
case 2:
Console.WriteLine("2");
Break;
default:
Console.WriteLine("is not 1or 2 ");
Break;
}
Main
C#程序是从方法Main()开始执行的。这个方法必须是类或者结构的静态方法并且返回值类型必须是Int或者void。
第二章:核心C#的更多相关文章
- c#高级编程第七版 学习笔记 第二章 核心c#
第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用S ...
- C#高级编程第9版 第二章 核心C# 读后笔记
System命名空间包含了最常用的.NET类型.对应前面第一章的.NET基类.可以这样理解:.NET类提供了大部分的功能,而C#语言本身是提供了规则. pseudo-code,哈哈,秀逗code.伪代 ...
- 【读书笔记】C#高级编程 第二章 核心C#
(一)第一个C#程序 创建一个控制台应用程序,然后输入代码,输入完毕后点击F5 Console.WriteLine();这条语句的意思:把括号内的内容输出到界面上: Console.ReadKey() ...
- 第二章 JavaScript核心语法
第二章 avaScript核心语法 一.变量的声明和赋值 JavaScript是一种弱类型语言,没有明确的数据类型,也就是在声明变量时不需要指定数据类型,变量的类型由赋给变量的值决定. 在Java ...
- Python核心编程第三版第二章学习笔记
第二章 网络编程 1.学习笔记 2.课后习题 答案是按照自己理解和查阅资料来的,不保证正确性.如由错误欢迎指出,谢谢 1. 套接字:A network socket is an endpoint of ...
- Android 系统移植与驱动开发--第二章搭建Android环境核心步骤及心得
第二章 搭建Android 开发环境 虽然在这一章中讲的是Android底层开发环境,但是相应伴随的还有Android NDK程序来测试Linux驱动,HAL程序库.底层开发不仅需要交叉编译环境,还要 ...
- Python黑帽编程 2.0 第二章概述
Python黑帽编程 2.0 第二章概述 于 20世纪80年代末,Guido van Rossum发明了Python,初衷据说是为了打发圣诞节的无趣,1991年首次发布,是ABC语言的继承,同时也是一 ...
- 《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型
第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以 ...
- 精通Web Analytics 2.0 (4) 第二章:选择你的网络分析灵魂伴侣的最佳策略
精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第二章:选择你的网络分析灵魂伴侣的最佳策略 在Web Analytics 2.0的新世界秩序中,您必须跳出"单一真理来 ...
- CISA 信息系统审计知识点 [第二章. IT治理和管理 ]
第二章. IT治理和管理 1. IT治理.管理.安全和控制框架及标准.指南和实践 IT治理是董事会和执行管理层的职责. IT治理的关键因素:保持与业务的战略一致,引导业务价值的实现. IT治理关注 ...
随机推荐
- 用SparkSQL构建用户画像
用SparkSQL构建用户画像 二. 前言 大数据时代已经到来,企业迫切希望从已经积累的数据中分析出有价值的东西,而用户行为的分析尤为重要. 利用大数据来分析用户的行为与消费习惯,可以预测商品的发展 ...
- HDU 6396 Swordsman --------2018 Multi-University Training Contest 7 (模拟+读入挂)
原题地址: 打怪升级 一开始有N个怪物:主角有K个能力:只有K个能力都击败怪物才能斩杀怪物并获得K个能力的增值:问最多能杀几个怪物: 做法: 用优先队列把怪物能力装进去:能力小放前面: 最重要的是数据 ...
- Servlet 工作原理
Servlet运行在Servlet容器中,由容器负责Servlet实例的查找及创建工作,并按照Servlet规范的规定调用Servlet的一组方法,这些方法也叫生命周期的方法.具体调用过程如下图所示: ...
- 四. Java继承和多态3. 继承中的方法的覆盖和重载
在类继承中,子类可以修改从父类继承来的方法,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的名称.返回值类型.参数列表. 如果在新类中定义一个方法,其名称.返回值类型和参数列表正好与父类 ...
- Chromium和Chrome的区别
1.Chromium是谷歌的开源项目,开发者们可以共同去改进它,然后谷歌会收集改进后的Chromium并发布改进后安装包.Chrome不是开源项目,谷歌会把Chromium的东西更新到Chrome中. ...
- EF执行存储工程报错 String[4]: Size 属性具有无效大小值 0。
EF中执行存储过程报错 String[4]: Size 属性具有无效大小值 0 排查后是如下问题所致,给定的参数没有设定大小(加入红框内的就可以了) private string GetCode(MC ...
- JavaScript入门:006—JS函数的定义
JS函数的声明. 声明函数的格式例如以下: function 函数名(參数列表){ //函数语句: return 返回值; } 来看详细的函数声明.1.普通函数 <script type=&qu ...
- 如何使用apache的 work模式还是 prefork 模式
注意: 2.4之前版本默认为prefork, 2.4已经变为event模式.三种模式比较: http://www.cnblogs.com/fnng/archive/2012/11/20/2779977 ...
- windows curl命令
一.概述 Curl命令可以通过命令行的方式,执行Http请求.在Elasticsearch中有使用的场景,因此这里研究下如何在windows下执行curl命令 二.下载 下载地址:https://cu ...
- 【转】Understanding Inversion of Control, Dependency Injection and Service Locator Print
原文:https://www.dotnettricks.com/learn/dependencyinjection/understanding-inversion-of-control-depende ...