深入.NET平台和C#编程---总结

简介:

一   第一章 
1 简述.NET框架体系结构的组成 
  答:包括CLR(公共语言进行时)和框架类库。 2 简述CLR的主要用途 
  答:它是所有的,NET应用程序运行时环境,是所有.NET应用程序都要使用的编程基础,它如同一个支持.NET应用程序运行和开发的虚拟机。包括CTS和CLS。  
CTS-通用类型系统:用于解决不同语言的数据类型不同的问题,所有.NET语言共享这一类型系统,在他们之间实行无缝互操作。 
CLS-公共语言规范:最低的语言标准,所有运行在.NET平台上的语言所必须支持的最小特征,以及该语言为其他.NET语言之间互操作所需要的完备特征。  
.NET编译技术:  所有运行在.NET平台上的语言都配有自己的编译器,通过这一编译器将应用程序编译为微软中间代码MSIL,再由编译器JIT转换为机器代码,从而实现的跨语言的平台。  
.NET框架的主要内容有CLR、框架类库、ADO.NET、XML\ASP.NET、WinForms、WebService等。 
二   第二章 
1 如何设置字段属性 
  答:只读属性,只包含get访问器       只写属性,只包含set访问器       读写属性,包含set和get访问器 2 简述C#中属性和字段的区别 
  答:在C#中,我们可以通过属性来约束对字段的非法的输入,属性也可以被设置成只读。 在C#中我们通常不会去直接访问字段,而是通过访问器访问(get和set),这种实现方式我们称之为属性。 
属性是对字段的封装,保证了数据安全性和完整性。   
类定义了一组概念的模型,而对象是真实的实体。 
三   第三章 
1  简述类和结构的区别    答: 
 类 结构 不同点 
引用类型 值类型 可以被继承 不能被继承 
可以有默认的构造方法 
有默认的无参构造方法,但不能显式定义无参
的构造方法 


C#快速入门c#Express2008开...c#与.net编程

 

可以添加无参的构造方法 可以添加构造方法,但必须是带参数的 
创建对象必须使用new 创建对象可以不使用new 类中可以给字段赋值 
结构中给字段赋值是错误的 
相同点 
都可以包含字段和方法 都可以实现接口 
 
枚举是一组指定的常数,它可以用描述性的名称表示,对可能值进行约束。  枚举的定义:enum 
类图是表示类的结构和类与类之间关系的图表。  
四   第四章 
1  简述泛型集合和传统集合的异同    答: 
不同点: 
泛型可以定义类型安全的数据类型,可以约束泛型内的元素类型。 List<T>和Dictionary<K,V>访问元素时无须类型转换。 相同点: 
泛型集合可以作为类中的一个属性。使用泛型集合必须实例化。 
五   第五章 
1 简述操作读写一个文件的过程   答: 
 创建一个文件流:FileStream fs=new FileStream(string filePath);  创建阅读器或写入器:StreamReader sr=new StreamReader(fs); 
或:StreamWriter sw=new StreamWriter(fs); 
 执行读写操作:sr.ReadLine(); 或:sw.WriteLine();  关闭阅读器或写入器:sr.Close(); 或:sw.Close();  关闭文件流:fs.Close(); 
  
文件流的类是FileStream。 
StreamWriter是一个写入器,SreamReader是一个读取器。 
File类用于对文件进行操作,如复制、删除等,Directory类用于对文件夹操作,它们都是静态类。  常用的方法:判断一个文件或目录是否存在  File.Exists(string filePath);返回bool值,常用作if语句的条件。 XML称为可扩展标记性语言,它主要用于描述数据。读取一个XML文档使用XmlDocument对象,XML节点使用XmlNode对象表示。 
六   第六章 
1  简述public private protected三种访问修饰符的区别 
修饰符 类内部 子类 其他类 public 
可以 
可以 
可以 

 

 


private 可以 不可以 不可以 protected 
可以 
可以 
不可以 
   
继承必须符合 is a的关系,被继承的类称为父类或者基类,继承其他类的类称为子类或者派生类。 
继承机制很好地解决了代码复用的问题。 
子类继承父类的成员,并且可以拥有自己特有的成员。 base关键字可以用于调用父类的属性、方法、构造方法。 
继承具有传递性,如果class A:B;class B:C,则A也可以访问C的成员。 C#中类的继承具有单根性,一个类只能够同时继承一个父类。 被sealed关键字修饰的类称为密封类,密封类不能被继承。 
在子类中,如果不使用base关键字来显示调用基类构造方法,则将隐式调用默认的构造方法。 
如果重载的构造方法有一个没有使用base关键字来指明调用父类哪个构造函数,则父类必须提供一个默认的构造方法。 
继承模拟了现实世界的关系,继承实现了代码的重用,继承使得程序结构清晰,子类和父类的层次结构清晰,最终的目的是使其子类只关注子类的相关行为和状态,无须关注父类的行为与状态。 
七   第七章 
1  简述抽象方法和虚方法的区别    答: 
虚方法 
抽象方法 
用virtual修饰 用abstract修饰 有方法体 
无方法体 
可以被子类override(重写),也可以不被重写 非抽象子类中必须重写 除了密封类外都可以定义 
只能在抽象类中定义 
  
2  面向对象的三大特征是什么?简述每个原则的基本功能。    (1)封装:保证对象自身数据的完整性和安全性。 
   (2)继承:建立类之间的关系,实现代码复用,方便系统的扩展。    (3)多态:相同的方法调用可实现不同的实现方式   
多态是指两个或多个属于不同类的对象,对于同一个消息(方法调用)作出不同相应的行为方式。 
抽象方法是一个未实现的方法,它用abstract关键字修饰,含有抽象方法的类必然是抽象类。 使用抽象方法和虚方法都可以实现多态性。 
抽象方法要在其子类中通过override关键字重写,除非它的子类也是抽象类。 里氏替换原则: 
原则上子类对象是可以赋给父类对象的,也可以说子类可以替代父类。但是反过来,父类对象是不能赋给子类对象的。子类出现的地可以用父类代替。 

 

 


软件中的设计模式是软件开发中对于某种需求的一种经验的总结,是特定问题经过实践检验的特定解决方法。 
简单工厂模式用于在调用者不知道对象属于哪个子类的情况下,创建他们共同的父类。 
八   第八章 
1  简述抽象类和接口的区别。   答: 
 
抽象类 接口 不同点 
用abstract定义 
用interface定义 只能继承一个类 可以实现多个接口 
非抽象派生类必须实现抽象方法 实现接口的类必须实现所有成员 
需要override实现抽象方法 
直接实现 
相同点 
不能实例化 
包含未实现的方法 派生类必须实现未实现的方法 
  
IComparable接口有一个未实现的CompareTo()方法,一个类实现这个方法就能够进行排序。 接口是一组规范,是一种标准,遵循这个规范和标准就能实现某种功能。 接口可以让使用者不必关心它内部是如何实现的,方便多人协作开发。 IComparable<T>是IComparable接口的泛型版,它对类型的约束更严格。 
IComparer<T>通常称为比较器,它用于比较两个对象的大小,可以作为参数传递给Sort()方法进行排序。 
接口作为参数传递的是一个实现了这个接口的对象。接口作为返回值就是要返回一个实现了这个接口的对象。 
九   第九章 
序列化是将对象的状态存储到特定存储介质中的过程。 反序列化则是将存储介质中的数据重新构建为对象的过程。 
标识一个类是否能够序列化要在类的头部添加一个特征[Serializable] 
特性其实就是一个类,它的主要功能是对程序中的元素,如类、字段、方法、属性添加描述性的信息。 
Internal修饰的成员在同一个程序集中都可以访问,但是其他的程序集中的就不能访问,应用程序中的类,如果不指定访问修饰符,默认就是internal修饰。 序列化(反序列化)的步骤:  命名空间:System.RunTime.Formatters.Binary; 
 ○
1.文件流:FileStream fs=new FileStream(string filePath,FileModel.Create);  ○
2.二进制流:BinryFommater bf=new BinaryFommater();  ○3.序列化:bf.Serialize(fs,保存对象);   (反序列化):(保存对象)bf.DeSerialize(fs);--------要强制类型转化 
 ○4.关闭文件流:fs.Close();  
 

 

 


在.NET框架下开发三层结构数据库应用系统 
一    第一章 
1  用三层结构开发应用系统有哪些优势? 
  答:各层之间即相互依赖又互不影响。表示层只负责界面,业务逻辑层是表示层和数据访问层的桥梁,数据访问层直接操作数据库。    
2  业务逻辑层的主要职责? 
   (1)根据业务规则对数据进行加工和处理 
   (2)与相邻的表示层和数据访问层进行数据交换 
二    第二章 
1  自定义Dataset的主要步骤   答: 
 创建Dataset对象  创建DataTable对象 
 创建DataColumn对象搭建表结构  将创建好的表结构添加到表中  创建DataRow对象新增数据  将数据插入到表中  将表添加到Dataset中 
  
用ADO.NET实现三层结构应用系统是,DataSet的主要作用是三层之间数据传递的载体。 DataView是DataTable的动态数据试图,我们使用DataView的Sort、RowFilter属性实现数据的排序、过滤。 
用ADO.NET执行带参数的SQL命令时,我们需要使用参数(Parameters)集合的Add方法为SQL命令添加参数,包括参数名称、参数类型。 
三    第三章 
用OOP实现三层结构时,实体类是三层结构数据传递的载体。 
using在C#中主要有两个用途:一种是作为指令,引用命名空间。另一种是作为语句,用于定义一个范围,在此范围末自动释放对象。 
在使用实体类开发三层结构,用户的请求需要返回实体对象集合时,可使用List<T>实现。 在三层结构中,我们使用实体类消除关系数据与类之间的差别,以更好地使用面向对象的思想来实现我们的系统。 
四    第四章 
在.NET平台下有两种异常。一是由于公共语言运行库引发的异常,另一种是用户应用程序引发的异常。 
Exception类有4个常用属性:1  Message 提供异常常用信息。2  Source  提供导致异常发生的应用程序或对象名称。3  StackTrace  提供在堆栈上所调用方法的详细信息,并首先显示最近的调用方法。4  InnerException  对内部异常的引用,如果此异常基于前一个异常,

目录
相关文章
|
1月前
|
C#
24. C# 编程:用户设定敌人初始血值的实现
24. C# 编程:用户设定敌人初始血值的实现
20 0
|
2月前
|
SQL 数据库连接 应用服务中间件
C#WinForm基础编程(三)
C#WinForm基础编程
77 0
|
2月前
C#WinForm基础编程(二)
C#WinForm基础编程
58 0
|
2月前
|
C# 数据安全/隐私保护
C#WinForm基础编程(一)
C#WinForm基础编程
62 0
|
4月前
|
数据采集 前端开发 C#
C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频
Twitter是全球最大的社交媒体平台之一,包含丰富的音频资源。用户可以在Twitter上发布、转发、评论和收听各种音频内容,如音乐、播客、新闻、故事等,直接从Twitter抓取音频数据并非易事,尤其是在考虑到可能的封锁和反爬虫机制。Twitter会对频繁访问的IP地址进行限制或封禁,以防止恶意爬虫的行为。因此,我们需要使用一些技术手段来规避这些障碍,确保稳定而高效的数据访问。
C#编程艺术:Fizzler库助您高效爬取www.twitter.com音频
|
3月前
|
程序员 C#
深入理解 C# 编程:枚举、文件处理、异常处理和数字相加
枚举是一个特殊的“类”,表示一组常量(不可更改/只读变量)。 要创建枚举,请使用 enum 关键字(而不是 class 或 interface),并用逗号分隔枚举项:
38 0
|
4天前
|
存储 安全 网络安全
C#编程的安全性与加密技术
【4月更文挑战第21天】C#在.NET框架支持下,以其面向对象和高级特性成为安全软件开发的利器。本文探讨C#在安全加密领域的应用,包括使用System.Security.Cryptography库实现加密算法,利用SSL/TLS保障网络传输安全,进行身份验证,并强调编写安全代码的重要性。实际案例涵盖在线支付、企业应用和文件加密,展示了C#在应对安全挑战的同时,不断拓展其在该领域的潜力和未来前景。
|
4天前
|
程序员 C#
C#编程中的面向对象编程思想
【4月更文挑战第21天】本文探讨了C#中的面向对象编程,包括类、对象、封装、继承和多态。类是对象的抽象,定义属性和行为;对象是类的实例。封装隐藏内部细节,只暴露必要接口。继承允许类复用和扩展属性与行为,而多态使不同类的对象能通过相同接口调用方法。C#通过访问修饰符实现封装,使用虚方法和抽象方法实现多态。理解并应用这些概念,能提升代码的清晰度和可扩展性,助你成为更好的C#程序员。
|
5天前
|
IDE 程序员 C#
C#编程入门:从零开始的旅程
【4月更文挑战第20天】本文引导初学者入门C#编程,从环境搭建开始,推荐使用Visual Studio Community版作为IDE。接着,通过编写&quot;Hello, World!&quot;程序,介绍基本语法,包括数据类型、运算符和表达式。文章还涉及控制结构、函数和方法,以及面向对象编程概念。通过学习,读者将对C#有初步了解,并激发进一步探索编程世界的兴趣。
|
5天前
|
开发框架 .NET Java
探索 C#编程的奥秘与魅力
【4月更文挑战第20天】C#是微软开发的现代、面向对象的编程语言,以其简洁语法、强大功能和跨平台支持脱颖而出。它支持自动垃圾回收、泛型、委托、LINQ,并广泛应用于桌面、Web、移动和游戏开发。C#拥有活跃的开发者社区和丰富的资源,是Unity游戏开发的首选语言。随着.NET Core,C#可在多个操作系统上运行,持续创新,未来发展潜力巨大。