c sharp圣经 version 5读书笔记 第3章

1. 构建程序的应用程序对象,可执行程序入口点main()方法的构成。C#的基本数据类型及其在System命名空间中的等价类型,包括System.String 和System.Text.StringBuilder类类型。了解了.net数据类型的细节后,研究一些数据类型转换的技术,包括窄化运算,宽化运算以及checked和unchecked关键字的使用。

2. C#关键字var的作用:允许你隐式地定义本地变量。在使用LINQ技术时很有帮助。构建有效C#代码语句的核心操作符,迭代结构和选择结构。

注:在C#中创建全局函数或全局数据是不可能的。

3.定义staticMain()方法的类叫做应用程序对象。一个可执行程序可以有多个应用程序对象(在执行单元测试的时候可能有用),但是我们必须通过项目属性编辑器中的Application选项卡内的Startup Object列表来设定将那个Main()方法作为入口点。

4. static:静态成员是类级别的(而不是对象级别的)。在调用之前不需要先创建新的类实例。

5. 命名规则:C#所有关键字都是小写的,同时命名空间,类型和成员名称以一个大写字母开头,总监的单词都是首字母大写。

6. 格式化数值数据:string.Format(”{0:d9}”,999).构建的自定义类(或结构),可以通过ICustomFormatter接口来定义自定义的格式化构架。

7. C#数据类型关键字其实是System命名空间中完整类型的简化符号。C#内建系统类型和NET内建系统类型的区别。

8. 所有内建数据类型都支持默认构造函数,用new分配时,都有默认值而不是C++中那不可预料的值了。所有这些类型都派生自System.Object,它定义了一组方法。

9. string 和char都是Unicode,利用char.IsDigit(myChar)来判断是否是数字。

10. 从字符串数据中解析数值:用  内建类型.Parse(“w”);

11.System.DateTime(年,月,日 ) 和 System.TimeSpan(时,分,秒)。以及它们的一些方法。

12.System.Numerics的BigInterger表示大数值,Complex可以对虚数或双曲正切数建模,引用该名空间时,首先要添加System.Numerics.dll程序集,方法是Project->Add Reference->.net选项卡,选择System.Numerics程序集。同时using System.Numerics。

13. 转义字符:\’等,\a是触发系统警报。

Console.WriteLine(“C:\\MyApp\\bin\\Debug\a”)

Console.WriteLine(@“C:\MyApp\bin\Debug\a”):@”逐字字符串”可以让转义字符失效,对输出目录和网络路径的字符串时最有用

                 观察:@“Cerebus said :“Darrr!Pret-tysun-sets””

14. System.string 一旦赋值,字符数据就不能改变,包括“=”操作,每次操作 会返回一个新的string(旧的string等待垃圾回收),所以对于文本处理程序,滥用string会导致代码膨胀。

       string s2 = s1.ToUpper();只是返回了一个新的字符串。

15.System.Text.StringBuilder 调用这个,同string类是,但调用它的成员时都是直接在字符串上进行修改。默认保存16个字符一下的字符串,超出部分自动拓展(复制到新的实例中)。

16. 窄化和宽化:宽化是自动的,窄化(int to short)不行。强制类型转换

注:其实就是自动类型转换(文档查询Type Conversion Tables(类型转换表)主题)

捕捉窄化转换的错误:

Try{byte sum=checked( (byte) Add (b1,b2) );}catch{}:主要是用checked(强制转换)和unchecked()或者checked{语句块}

C#编译器提供了溢出检测:打开项目属性页->build->advanced->check…,调试完了关闭就可以了。

System.Convert.ToByte(myInt);//语言无关的方式进行数据类型转换(用它是个人喜好?)

17. 隐式类型本地变量:var关键字创建的变量,编译器根据数据点的初始值来自动推断实际的数据类型。Var可以声明变量,参数和字段。可以通过反射来输出类型名称…(什么玩意?)

       注:var不能用于字段数据:private var myInt=10  ×

              Var不能用于返回值或参数类型:public var MyMethod(var x){}  ×

              Var声明的本地变量必须在声明时分配初始值,且初值不能为null。Var myData ×

18. 隐式类型数据是强类型数据的理解:

           Var关键字与脚本语言(如JavaScript,Perl)所用的技术和COM的Variant数据类型并不相同,对于后两者来说,一个变量在应用程序的生命周期中可以保存不同的类型(通常称为动态类型),C#的动态类型是dynamic关键字声明的。

19. var的用处:几乎只用于LINQ技术。

20. for 循环While循环Do/while循环

Foreach/in:遍历数组 string[] carTypes=…; foreach(string c in carTypes)…

学习foreach关键字首先要对基于接口的编程以及IEnumerater和IEnumerable接口有一定的了解。(9章中介绍)

21. C#的switch语句

  Switch()  可以为数值或者字符串

  {

        Case ..:

               Break or goto;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值