当前位置: 首页 > news >正文

Pro C# 2008 and the .NET 3.5 Platform学习过程

全书一共分为七部分加附录

PART 1 C#和.NET平台简介

6月5日:第一天

第1章 .NET之道

第2章 构建C#应用程序

以上2章涉及概念简介……

CTS:公共类型系统,是一个正式的规范,规定了类型必须如何定义才能被CLR承载。(类,结构,借口,委托,枚举)

CLR:公共语言运行时,可以理解为执行给定编译代码单元所需的外部服务的集合。

CLS:公共语言规范,就是一套规则,清晰描述了支持.NET的编译器必须支持的最小的和完全的特征集,以生成可由CLR承载的代码,同时可以被.NET平台其他语言用统一的方式进行访问。CLS可以看成是由CTS定义的完整功能的一个子集。

      规则1:CLS规则仅适用于类型中向定义它的程序集以外的公开部分。

程序集:是自描述的。介绍其中部分内容,清单manifest,元数据metadata。

      其中清单记录了所有确保现有程序集正常工作的外部程序集、程序集版本号等。

      元数据描述了每一个二进制文件中定义的类型(类、结构、枚举等),及每个类型的成员(属性、字段、方法等) 。   

PART 2 C#核心编程结构

第3章 C#核心编程结构I

由于修改好时网断了,保存之后更新内容消失,暂就如此,第3章已经结束,下面继续。

6月6日:第二天

第4章 C#核心编程结构II

方法参数修饰符:无,按值传递(pass by value),意味着被调用的方法收到原始数据的一份副本。

(out,ref)这两个都是pass by reference按引用传递。params必须是参数的最后一个,而且可以作为一组可变参数的单独逻辑参数进行传递。

如果按引用传递引用类型,被调用者可能改变对象的状态数据的值和所引用的对象。(有参数修饰符,比如ref,out)

如果按值传递引用类型,被调用者可能改变对象的状态数据的值,但不能改变所引用的对象。(无参数修饰符)

6月7日:第三天

第5章 定义封装的类类型

在实例级别的构造函数中赋值给静态数据成员,每次新建对象的时候值都会被重置。

静态构造函数是特殊的构造函数,并且非常使用于在编译时未知的静态数据的值(例如,我们需要从外部文件读取值或者生成随机数)。

OOP3大支柱:封装(encapsulation),继承(inheritance),多态(polymorphism)。

在OOP中还有另一种形式的代码重用:包含/委托模型(也就是has-a关系,或称聚合)。这种重用的形式不是用来建立父类/子类关系的。它意味着,一个类可以顶一个另一个类的成员变量,并向对象用户直接公开它的功能(如果需要的话)。

第6章 继承和多态

抽象基类的多态接口只是指一组虚的或者抽象的方法。

关于重写System.Object.Equals()方法:

      如果对象用作hashtable中的键的话,必须重写GetHashCode()方法;如果不是但是进行比较的是对象的状态而不是引用的也必须重写GetHashCode()方法,否则可以直接继承Object的GetHashCode()方法。

6月8号:第四天

第7章 结构化异常处理

系统级异常和应用级异常

系统级异常:.NET平台引发的异常被称为系统级异常。这些异常被认为是无法修复的致命错误。系统级异常派生自名为System.SystemException的基类。作用:当一个异常类型派生自System.SystemException时,我们就能够判断引发该异常的实体是.NET运行库而不是正在执行的应用程序代码库。

内部异常:记录内部异常通常仅仅在调用者能够在首次发生异常时将其更恰当地捕获处理的情况下才有用,下面举个例子

 

ContractedBlock.gif ExpandedBlockStart.gif Code
catch (ArgumentOutOfRangeException e)
{
   
try
   {
      FileStream fs 
= File.Open(@"c:\data.txt", FileMode.Open);
   }
   
catch (Exception e2)
   {
      
throw new ArgumentOutOfRangeException(e.Message, e2);
   }
}

 

在此例中如果调用者的catch块逻辑能够利用InnerException属性来获取内部异常对象的详细信息的话,记录内部异常才有用。

6月9日:第五天

第八章 对象的生命周期

第九章 接口

第十章 集合与泛型

6月10日:第六天

第十一章 委托、事件和Lambda

 

 

转载于:https://www.cnblogs.com/lverking/archive/2009/06/05/1496908.html

相关文章:

  • 魔兽世界真的还值得你玩下去么?
  • 图解ASP.NET AJAX 1.0 RC开发
  • 动脑筋
  • 在Exchange 2003的03域改名
  • RHEL4- FTP服务(一)vsftpd的安装与启动
  • javascript中获取地址栏参数
  • WCF 4.0中的WS-Discovery
  • 《亮剑.NET:.NET深入体验与实战精要》前言
  • 在 Java 应用程序中定时执行任务
  • 我的座右铭
  • javascript:history.go()和History.back()的区别
  • 如何删除“运行”里面的内容
  • 认真对待生活的每一件事
  • 网络技术视频分享
  • 建立基于WEB标准的HTML模板
  • ----------
  • 网络传输文件的问题
  • ES6系列(二)变量的解构赋值
  • IDEA常用插件整理
  • iOS小技巧之UIImagePickerController实现头像选择
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • js面向对象
  • Phpstorm怎样批量删除空行?
  • php的插入排序,通过双层for循环
  • Spring Boot MyBatis配置多种数据库
  • 简单基于spring的redis配置(单机和集群模式)
  • 简单数学运算程序(不定期更新)
  • 精益 React 学习指南 (Lean React)- 1.5 React 与 DOM
  • 前端js -- this指向总结。
  • 前端存储 - localStorage
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • 【运维趟坑回忆录】vpc迁移 - 吃螃蟹之路
  • ​2020 年大前端技术趋势解读
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • $var=htmlencode(“‘);alert(‘2“); 的个人理解
  • (10)ATF MMU转换表
  • (JS基础)String 类型
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • ... 是什么 ?... 有什么用处?
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .Net中间语言BeforeFieldInit
  • @SuppressWarnings注解
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [acwing周赛复盘] 第 94 场周赛20230311
  • [Ariticle] 厚黑之道 一 小狐狸听故事
  • [bbk5179]第66集 第7章 - 数据库的维护 03
  • [C++基础]-初识模板
  • [C语言]——函数递归
  • [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云