C#完整复习资料Word文档下载推荐.docx

上传人:b****3 文档编号:6517460 上传时间:2023-05-06 格式:DOCX 页数:16 大小:94.27KB
下载 相关 举报
C#完整复习资料Word文档下载推荐.docx_第1页
第1页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第2页
第2页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第3页
第3页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第4页
第4页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第5页
第5页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第6页
第6页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第7页
第7页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第8页
第8页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第9页
第9页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第10页
第10页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第11页
第11页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第12页
第12页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第13页
第13页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第14页
第14页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第15页
第15页 / 共16页
C#完整复习资料Word文档下载推荐.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C#完整复习资料Word文档下载推荐.docx

《C#完整复习资料Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C#完整复习资料Word文档下载推荐.docx(16页珍藏版)》请在冰点文库上搜索。

C#完整复习资料Word文档下载推荐.docx

结构具有以下特点:

结构是值类型,而类是引用类型

向方法传递结构时.结构是通过传值方式传递的,不是作为引用方式传递.

与类不同,结构的实例化可以不使用new运算符.

结构可以声明构造函数,但他们必须带参数

一个结构不能从另一个结构或类继承,而且不能作为一个类的基。

所有结构都直接继承自System.ValueType,后者继承自System.Object。

结构可以实现接口。

在结构中初始化实例字段是错误的。

1)结构是一个值类型,保存在栈上,而类是一个引用类型,保存在受管制的堆上。

2)对结构中的数据进行操作比对类或对象中的数据进行操作速度要快。

3)一般用结构存储多种类型的数据,当创建一个很多类或对象共用的小型对象时,使用结构效率更高。

7、在Queue类、Stack类、HashTable类中,常用方式使用,HashTable有什么特点?

Queue(队列)类主要实现了一个FIFO(FirstInFirstOut,先进先出)的机制。

元素在队列的尾部插入(入队操作),并从队列的头部移出(出队操作)。

在Queue中主要使用Enqueue、Dequeue、Peek三个方法对队进行操作。

Enqueue方法用于将对象添加到Queue的结尾处;

Dequeue方法移除并返回位于Queue开始处的对象;

Peek方法用于返回位于Queue开始处的对象但不将其移除。

Stack(堆栈)类主要实现了一个LIFO(LastInFirstOut,后进先出)的机制。

元素从栈的顶部插入(入栈操作),也从堆的顶部移除(出栈操作)。

在Stack中主要使用Push,Pop,Peek三个方法对栈进行操作。

Push方法用于将对象插入Stack的顶部;

Pop方法用于移除并返回位于Stack顶部的对象;

Peek方法用于返回位于Stack顶部的对象但不将其移除。

Hashtable(哈希表)是一种键/值对集合,这些键/值对根据键的哈希代码进行组织。

在一个Hashtable中插入一对Key/Value时,它自动将Key值映射到Value,并允许获取与一个指定的Key相关联的value。

在Hashtable中主要使用Add、Remove两个方法对哈希表进行操作。

Add方法用于将带有指定键和值的元素添加到Hashtable中;

Remove方法用于从Hashtable中移除带有指定键的元素。

 

说明:

Hashtable不能包含重复的key。

如果调用Add方法来添加一个keys数组中已有的key,就会抛出异常。

为了避免这种情况,可以使用ContainsKey方法来测试哈希表中是否包含一个特定的Key。

8、在哈希表中,对象所属的哈希桶的地址是由“为该对象设置的键值”决定的。

9、读取图形文件时,应使用"

BinaryReader"

类的对象

10、在ADO.NET中,表示程序到数据的连接的对象是“connection对象”。

11、在C#中设计类时,如何将一个可读可写的公有属性Name修改为只读属性?

将Name的set块删除

12、在编写C#程序时,若需要一个数组中的所有元素进行处理,则使用“foreach”循环体最好。

13、C#编译器将C#程序编译成什么样的代码?

(中间语言)

14、在使用FileStream打开一个文件时,通过使用FileMode枚举类型的“Append”成员来制定操作系统打开一个现有文件并把文件读写指针定位在文件尾部。

15、什么是封装、继承、多态?

封装就是把一些特征或功能组合到一个抽象的对象上。

C#只支持单继承,即一个类只能继承一个父类

多态就是父类定义的抽象方法,C#允许将子类赋值给父类,然后在父类中通过调用抽象方法来实现子类具体功能。

16、在ADO.NET,将用产生在DataSet中的改动保存到数据源中,应使用哪个方法?

DataAdapter对象的Update方法

17、掌握数组的使用

18、掌握字符串的使用

二、简答

1、个控制台程序相比,Windows应用程序编程的特点有哪些,试简述之。

从表面上来看:

控制台程序运行时是在DOS环境下,或者模拟dos环境运行的程序,运行时一般会启动一个提示符窗口。

而应用程序是Windows环境下的窗口程序。

运行时一般会启动一个窗口画面。

(例外,病毒木马,就不显示窗口,这决定于是否创建了窗口,或者是否让窗口显示)但是,实质上,windows应用程序和控制台应用程序的真正区别是,PE文件的结构不同,这点不需要我们去关心,编译器会根据你的选择去构建生成的exe文件的PE结构。

如何告之编译器你的选择?

在编译器进行连接的时候,给它一个连接参数:

subsystem:

windows或者subsystem:

console来告诉它。

对于大多数编程工具来说一般在“工程->

设置->

连接”这个表单里面就可以看到这个参数。

但是通常在我们要创建一个新的工程的时候,编译器会让我们事先选择好是创建windows应用程序还是创建控制台应用程序。

这个参数的设置就不用我们操心了。

补充(你可以不看,有点复杂了):

事实上,控制台程序依然还有区别,那就是,16位的可以在DOS操作系统环境中运行的DOS程序(也可以在window运行通常windows会模拟一个dos环境,这时你会程序窗口与平时的提示符窗口明显不一样),和32位通常只能在windows操作系统中运行的程序。

通常32位控制台在DOS下运行,它的PE结构中会给予DOS环境下运行的一个入口点(DOS文件头),这个入口点只有“一行”代码:

"

ThisprogramcannotberuninDOSmode"

而在32位系统下,操作系统将将查看PE文件头里面的subsystem字段来获得程序将以什么方式运行(windoes或者console)这个字段里面指示了子系统(CUI对应控制台,GUI对应普通程序,驱动程序等没有子系统)32位的控制台程序当然可以调用PAI函数,而16位的DOS程序则不可以调用API函数。

2、C#支持的数据类型有哪些?

值类型和引用类型有何不同?

与C/C++相比有什么不同

C#数据类型分为值类型和引用类型。

(1)值类型

  包括:

简单类型、结构类型、枚举类型。

其中,简单类型又分为:

整型、布尔型、字符型、浮点型、小数型。

  

(2)引用类型

包括:

对象类型、类类型、接口、元数据、字符串类型、数组。

值类型和引用类型的区别在于,值类型的变量直接存放实际的数据,而引用类型的变量存放的则是数据的地址,即对象的引用。

当把一个值变量赋给另一个值变量时,会在堆栈(stack)中保存两个完全相同的值;

而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆(heap)位置的两个引用。

进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其他变量;

对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。

  与C++相比,C#的主要特点有:

  1)C#语言自C/C++演变而来。

但是,它是完全按照面向对象的思想来设计的,并保证了类型的安全性。

  2)C#简化了C++在类、名称空间、方法重载和异常处理等方面的使用。

摒弃了C++的复杂性,使它更易用、更少出错。

  3)C#减少了C++的一些特性,不再有宏、多重继承。

特别对企业开发者来说,上述功能只会产生更多的麻烦而不是效益。

  4)C#采用严格的类型安全、版本控制、垃圾收集(garbagecollect)等等。

所有的这些功能的目标都是瞄准了开发面向组件的软件开发。

  5)C#中不再有“:

:

”、“.”、和“->

”操作符,仅使用单个操作符“.”。

  6)C#使用统一的类型系统,摒弃了C++多变的类型系统。

  7)在C#中,不能在类的外部定义全局函数、变量或者是常量等。

所有的东西都必须封装在类中,包括实例成员或静态成员。

从而使C#代码更加易读且有助于减少潜在的命名冲突。

  8)在C#中,不能使用没有初始化的变量。

从而避免了由于使用不经初始化的变量而导致的计算结果错误。

3、C#语言中的数组类型有何特点?

分为几类?

1)数组一般用于存储同一种类型的数据,包括Object类型。

2)数组是一种引用类型,而不是值类型。

3)C#中除了可以有一维数组、多维数组外,还有交错型数组。

4、Directory类提供了哪些目录管理的功能,它们是通过哪些方法来实现的?

Directory类为我们提供了对磁盘和目录进行管理的功能,如复制、移动、重命名、创建和删除目录,获取和设置与目录的创建、访问及写入操作相关的时间信息。

如:

CreateDirectory方法用于创建指定路径中的所有目录;

Delete方法用于删除指定的目录;

Move方法能够重命名或移动目录;

Exists方法用于确定给定路径是否引用磁盘上的现有目录;

GetCurrentDirectory方法用于获取应用程序的当前工作目录;

GetFiles方法用于返回指定目录中的文件的名称等。

5、C#如何使用try-catch-finally处理可能的代码异常?

6、简述装箱和拆箱的过程。

装箱是将值类型隐式地转换为object类型或者转换为由该值类型实现了的接口类型。

装箱一个数值会为其分配一个对象实例,并把该数值拷贝到新对象中。

拆箱是显式地把object类型转换成值类型,或者把值类型实现了的接口类型转换成该值类型。

7、错误和异常有什么区别,为什么要进行异常处理,用于异常处理的语句有哪些?

错误是指在执行代码过程中发生的事件,它中断或干扰代码的正常流程并创建异常对象。

当错误中断流程时,该程序将尝试寻找异常处理程序(一段告诉程序如何对错误做出响应的代码),以帮助程序恢复流程。

换句话说,错误是一个事件,而异常是该事件创建的对象。

当使用短语“产生异常”时,表示存在问题的方法发生错误,并创建异常对象(包含该错误的信息及发生的时间和位置)来响应该错误。

导致出现错误和随后异常的因素包括用户错误、资源失败和编程逻辑失败。

这些错误与代码实现特定任务的方法有关,而与该任务的目的无关。

如果不进行异常处理,即不对错误做出响应,程序的健壮性就会大打折扣,甚至无法保证正常运行,所以必须要进行异常处理。

用于异常处理的语句有:

try-catch语句、try-catch-finally语句、throw语句。

8、简述ADO.NET提供了两种读取数据库的方式。

ADO.NET提供了两种读取数据库的方式。

  第一种是利用Connetction、Command和DataReader对象,这种方式只能读取数据库,不能修改记录。

如果只是想查询记录的话,这种方式的效率更高些。

  第二种是利用Connection、Command、DataAdaPter和Dataset对象,这种方式更灵活,可以对数据库进行各种操作。

3、程序

1、写出下列程序的功能

Staticviodf2{refdouble[]a,intn}

inti;

doublesum=0;

for(i=0;

i<

n;

i++)

sum+=a[i];

Sum/=n;

for(a[i];

if(a[i]>

=sum)

Console.Write(a[i]+"

"

);

Console.WriteLine();

}

2、

UsingSystem;

ClassDemo{

inta;

PublicDemo(intn)

a=0;

PublicintM()

If(a>

0)

returna--;

Else

Return();

ClassTest

{staticvoidMain()

{Demox=newDemo(0);

Intk=x.M();

While(k>

{Console.Write(”{0}\t“,k*k);

K=x.M();

结果:

816449362516941

4.、请设计一段程序实现对列的入列和出列操作,最后输出对列中的元素,代码程序

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

usingSystem.Collections;

namespaceConsoleApplication4

classProgram

{

staticvoidMain(string[]args)

Queuequeue1=newQueue();

queue1.Enqueue("

CSharp"

queue1.Enqueue

(1);

queue1.Enqueue(newint[]{1,2,3});

objectoutItem=newobject();

while(queue1.Count>

0)

outItem=queue1.Dequeue();

Console.WriteLine("

{0}"

outItem);

}

Console.ReadLine();

5、请设计一段程序对列的入栈和出栈操作,最后输出栈中的元素,代码如下

Stackstack1=newStack();

stack1.Push("

Csharp"

stack1.Push

(1);

stack1.Push(newint[]{1,2,3});

ObjectoutItem=newobject();

While(stack1.Count>

outItem=stack1.Pop();

Console.WriteLine("

outItem);

6、试编写一段程序,把数值0,1.....,10以二进制的形式写入文件Data.dat。

7、使用FileStream创建文本文件file.txt,并文件中写入任一字符中。

StaticvoidMain(string[]args)

byte[]m_bDataWrite=newbyte[100];

char[]m_cDataWrite=newchar[100];

try

FileStreamm_FileStream=newFileStream(@"

C:

\file.txt"

FileMode.OpenORCreate);

m_cDtaWrite="

MyFirstFileOperation"

.ToCharArray();

Encoderm_Enc=Encoding.UTF8.GetEncoder();

m_Enc.GetBytes(m_cDataWrite,0,m_cDataWrite.Length,m_bDataWrite,0,true);

m_FileStream.Seek(0,SeekOrigin.Begin);

m_FileStream.Write(m_bDataWrite,0,m_bDataWrite.Length);

catch(IOExceptionex)

ThereisanIOException"

Console.WriteLine(ex.Message);

Console.ReadLine();

Return;

WritetoFileSucced!

return;

4、综合题知识点

1、简述用ADO,NET开发数据库应用程序的基本方法和步骤。

编写控制台程序,从SQLSewver数据库Student表中,读取出所有姓”李“学员的姓名。

(假设数据库连接已建立为connection,DBCommand已创建为SqlCommand,Student表”姓名“列名为StudentName)。

2、简述用ADO.NET开发数据库应用程序的基本方法和步骤。

设现有一SQLServer

数据库服务器中Student数据库,请设计某类中一个方法实现数据库连接,写出主要程序代码

使用ADO.NET开发数据库应用程序一般可分为以下几个步骤。

(1)根据使用的数据源,确定使用哪种.NETFramework数据提供程序。

(2)建立与数据源的连接,需要使用Connection对象。

(3)执行对数据源的操作命令,通常使用Command对象。

(4)使用数据集对获得的数据进行操作,需要使用DataReader、DataSet等对象。

(5)显示数据,需要使用数据控件。

数据库连接

usingSystem.Data;

usingSystem.Data.SqlClient;

namespaceSqlConnApp

classSqlConnApp

//得到一个SqlConnection

SqlConnectionmyCon=newSqlConnection();

//构造连接字符串

myCon.ConnectionString=

DataSource=(local);

InitialCatalog=Northwind;

IntegratedSecurity=True"

;

//PersistSecurityInfo=False;

Userid=sa;

pwd=12903;

database=northwind;

server=(local)

//建立连接

myCon.Open();

//输出连接状态

myCon.State);

//输出:

Open

Console.ReadKey();

控制台程序

usingSystem.Data.OleDb;

namespaceAccessConnApp

classAccessConnApp

//在此处放置用户代码以初始化页面

stringstrConnection=

Provider=Microsoft.Jet.Oledb.4.0;

DataSource=C:

\\test.mdb"

//数据库路径及名称

//连接数据库的语句

OleDbConnectionconn=newOleDbConnection(strConnection);

//建m立DbComand对象

OleDbCommandcmd=conn.CreateCommand();

cmd.CommandText="

SELECT*FROM[user]"

conn.Open();

OleDbDataReaderdr=cmd.ExecuteReader();

while(dr.Read())

Console.WriteLine(dr["

memo"

]);

//记住dr用毕必须关闭,否则会阻塞服务器

dr.Close();

//DbConnection是受托管的,可以不关闭

//但为良好的编程习惯,应该关闭

conn.Close();

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2