标签分类
当前位置:首页 > > C#编程电子书网盘下载
C#初学者指南 C#初学者指南
码小辫

码小辫 提供上传

资源
16
粉丝
43
喜欢
24
评论
12

    C#初学者指南 PDF 原书扫描版

    C#编程电子书
    • 发布时间:

    给大家带来的一篇关于C#编程相关的电子书资源,介绍了关于C#语言、编程指南方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小3.38 MB,达文波特编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.3

  • C#初学者指南 PDF 下载
  • 下载地址:https://pan.baidu.com/s/13RswofcGK1y8UXBl5pnE_w
  • 分享码:mh16
  • C#初学者指南

    C#初学者指南电子书封面

    读者评价

    只有225页却真的达到了入门的效果。很简短但是内容全面,重点突出,举例接地气,高级用法例如虚拟类和抽象类其实没有太讲清楚。

    第一次接触C#的时候,我个人觉得是难懂的。毕竟我是第一次接触这个学科,我不了解这个学科是怎样的,如何学习这门学科。在上完第一节的时候,我完全是懵的,不过在往下的学习,我第一次感觉这个学科的魅力。
    接下来,我和我们的老师有所接触,老师的深刻的讲解,让我和同学有进一步的了解,C#如老师所说,虽不像java,C语言,那样热门,不过它是易学的,它是适合我们学的。往后的学习,我们接触的更多,我们所学习的如同其他学科一样,像英语,语文等等,我们要了解它们的语言,用法以及规范。

    在学习C#基础知识过程中,就是前三章的内容,在这学习里,需要下一些功夫,不打好基础往后学是吃力的。

    往后的学习是更深入的,要我们投入更多精力。

    内容介绍

    C#是一种简单易学的、成熟的编程语言,作为.NET Framework的一部分,C#语言得到非常广泛的应用。

    《C#初学者指南》是一本C#语言的初学者的教程,涵盖了C#和.NET Framework语言中最重要的主题。全书共包括16章和3个附录,依次介绍了 C#程序语言、面向对象编程和.NET Framework类库3个方面的知识和技术。附录部分简单介绍了Visual Studio Express和SQL Server Express等常用工具。
     

    《C#初学者指南》内容全面,示例丰富,浅显易懂,可以帮助读者掌握C#编程基础知识,以完成中级C#程序员的日常任务。《C#初学者指南》适合C#语言初学者和对C#编程感兴趣的读者阅读,也可以作为相关专业的教学参考书或培训教材。

    内容节选

    轻松学习C#的基础入门

           C#是一种简单的,安全的,稳定的,由C和C++衍生出来的面向对象的编程语言,它在继承C和C++强大功能的同时,去掉了它们的一些复杂性,综合了Visual Studio简单的可视化操作和C++高效的运行效率,以其强大的操作能力,独特的语法风格,创新的语言特性,便捷的面向组件编程的支持,使其成为.NET开发的首选语言,并成为ECMA和ISO的标准规范。
           C#和Java有着惊人的相似,主要包括诸如单一继承,接口,与Java几乎同样的语法和编译成中间代码在运行的过程。但是C#和Java有着明显的区别,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而它是.NET Windows 网络框架的主角。
           使用C#语言,用户可以创建传统的Windows客户端应用程序,XML Web Services,分布式组件,客户端应用程序,服务器应用程序和数据库应用程序等。
            C#语法表现能力强,而且简单易学。C#的大括号语法使熟悉C,C++或Java的人可以立即上手。C#语法提供了很多强大的功能,例如null的值类型,枚举,委托,lambda表达式直接内存访问,这些都是Java语言所不具备的。C#支持泛型方法和类型,提供了更出色的类型安全和性能。C#还提供了迭代器,允许集合类的实施者定义自定义的迭代行为,以便容易被客户端代码使用。在C#3.0,语言集成查询(LINQ)表达式使强类型查询成为一流的语言构造。
            作为一种面向对象的语言,C#支持封装,继承和多态性。所有的变量和方法,可以实现任意数量的借口。重写父类中虚方法的各种方法要求override关键字作为一种避免意外重定义的翻方式。在C#中,结构类似于一个轻量类,是一种堆栈分配的类型,可以实现接口,但不支持继承。
            除了这些基本的面向对象的原理外,C#还通过几种创新的语言构造简化了软件组件的开发:

    • 1、封装的方法签名(称为“委托”)。实现了类型安全的事件通知。
    • 2、属性,充当私有成员变量的访问器。
    • 3、属性,提供了关于运行时类型的声明性元数据。
    • 4、内联XML文档注释。
    • 5、语言集成查询(LINQ),提供跨各种数据源的内置查询功能。

           在C#中,如果必须与其他Windows软件(如COM对象或本机Win 32 DLL)交互,则可以通过一个称为“互操作”的过程来实现。互操作使C#程序能够完成本机C++应用程序可以完成的下,C#甚至支持指针和“不安全”代码的实现。
           C#生成过程比C和C++简单,比Java灵活,它没有单独的头文件,也不要求按照特定的顺序声明方法和类型,同时还可以定义任意数量的类,结构,接口和事件。
            C#独有的特点:

            1、中间代码。
            2、命名空间中的声明。当创建一个程序时,在一个命名空间里创建了一个或多个类,同时在这个命名空间里(在类的外面)可能还有声明接口,枚举类型和结构体等。这时必须使用using关键字来引用其他命名空间的内容。
            3、基本数据类型,C#拥有比C,C++或者Java更广泛的数据类型。这些数据类型是bool,byte,ubyte,short,ushort,int, uint, long ,float, double和decimal。
            4、两个基本类,一个名叫objict的类是所有其他类的基类,而一个名类叫string的类同object一样,是这个语言的一部分。
            5、参数传递。方法可以被声明为接受可变数目的参数。默认的参数传递方法是对基本数据类型进行值传递。ref关键字可以用来使一个变量通过引用传递接受一个返回值,out关键字可以声明引用传递的过程。与ref不同的是,out关键字可指明某个参数不需要初始值。
            6、与COM的集成。C#对Windows程序最大的特点可能就是它与COM的无缝集成,COM就是微软的Win32组件技术。C#编写的类可以子类化一个已存在的COM组件,生成的类可能被作为一个COM组件使用。
            7、索引下标。使用索引不是使用属性名来引用类成员,而是用哟个方括号中的数字来匿名引用(就像用数组下标一样)。
            8、代理和反馈。一个代理对象包括了访问一个特定对象的特定方法所需要的信息。代理对象可以被移动到另一个地方,然后可以通过访问它来对已存在的方法进行类型安全的调用。一个反馈方法就是代理的特例。event关键字用在将在事件发生的时候被当成代理调用的方法声明。
           C#语言所支持的程序开发:

           1、支持DOS程序(控制台应用程序)
      2、支持桌面Windows窗体应用程序
      3、支持游戏游戏程序的开发
      4、支持Web程序的开发(教务管理系统,图书馆查询系统,服务器服务程序等)
      5、支持手机应用程序的开发(嵌入式系统等)
      6、支持ASP.NET应用程序的开发。

    以上就是学习C#的入门知识点汇总,希望对大家学习C#程序设计有所帮助。

    目录

    • 第1章 初识C# 
    • 1.1 第一个C#程序 
    • 1.1.1 启动IDE 
    • 1.1.2 编写C#程序 
    • 1.1.3 编译和运行C#程序 
    • 1.2 C# 编码惯例 
    • 1.3 小结 
    • 第2章 语言基础 
    • 2.1 ASCII和Unicode 
    • 2.2 内建类型和通用类型系统 
    • 2.3 变量 
    • 2.4 常量 
    • 2.5 直接量 
    • 2.5.1 整型直接量 
    • 2.5.2 浮点型直接量 
    • 2.5.3 布尔型直接量 
    • 2.5.4 字符型直接量 
    • 2.6 基本类型转换 
    • 2.6.1 宽化转换 
    • 2.6.2 窄化转换 
    • 2.7 运算符 
    • 2.7.1 一元运算符 
    • 2.7.2 算术运算符 
    • 2.7.3 关系运算符 
    • 2.7.4 条件运算符 
    • 2.7.5 位移运算符 
    • 2.7.6 赋值运算符 
    • 2.7.7 整型位运算符&|^ 
    • 2.7.8 逻辑运算符&|^ 
    • 2.7.9 运算符优先级 
    • 2.7.10 提升 
    • 2.8 注释 
    • 2.9 小结 
    • 第3章 语句 
    • 3.1 C#语句概览 
    • 3.2 if语句 
    • 3.3 while语句 
    • 3.4 do-while语句 
    • 3.5 for语句 
    • 3.6 beak语句 
    • 3.7 continue语句 
    • 3.8 switch语句 
    • 3.9 小结 
    • 第4章 对象与类 
    • 4.1 C#对象是什么 
    • 4.2 C#类 
    • 4.2.1 字段 
    • 4.2.2 方法 
    • 4.2.3 main方法 
    • 4.2.4 构造函数 
    • 4.2.5 UML类图中的类成员 
    • 4.3 创建对象 
    • 4.4 null关键字 
    • 4.5 内存中的对象 
    • 4.6 C#命名空间 
    • 4.7 封装和类的访问控制 
    • 4.8 关键字this 
    • 4.9 使用其他类 
    • 4.10 静态成员 
    • 4.11 变量作用字段 
    • 4.12 方法重载 
    • 4.13 小结 
    • 第5章 核心类 
    • 5.1 System.Object 
    • 5.2 System.String 
    • 5.2.1 字符串连接 
    • 5.2.2 比较两个字符串 
    • 5.2.3 字符串直接量 
    • 5.2.4 转义特定字符 
    • 5.2.5 String类的属性 
    • 5.2.6 String类的方法 
    • 5.3 System.Text.StringBuilder 
    • 5.3.1 StringBuilder类的构造函数 
    • 5.3.2 StringBuilder类的属性 
    • 5.3.3 StringBuilder类的方法 
    • 5.4 数组 
    • 5.4.1 遍历数组 
    • 5.4.2 改变数组的大小 
    • 5.4.3 为Main传递一个字符串数组 
    • 5.5 System.Console 
    • 5.6 小结 
    • 第6章 继承 
    • 6.1 继承概述 
    • 6.1.1 扩展一个类 
    • 6.1.2 is-a关系 
    • 6.2 可访问性 
    • 6.3 方法覆盖 
    • 6.4 调用基类的构造函数 
    • 6.5 调用基类的隐藏成员 
    • 6.6 类型转换 
    • 6.7 密封类 
    • 6.8 关键字is 
    • 6.9 小结 
    • 第7章 结构 
    • 7.1 结构概述 
    • 7.2 .NET结构 
    • 7.3 编写一个结构 
    • 7.4 可为空的类型 
    • 7.5 小结 
    • 第8章 错误处理 
    • 8.1 捕获异常 
    • 8.2 没有catch的try语句和using语句 
    • 8.3 System.Exception类 
    • 8.4 从方法中抛出异常 
    • 8.5 异常处理中的最后注意事项 
    • 8.6 小结 
    • 第9章 数字和日期 
    • 9.1 数字解析 
    • 9.2 数字格式化 
    • 9.3 System.Math类 
    • 9.4 使用Date和Time 
    • 9.4.1 System.DateTime 
    • 9.4.2 System.TimeSpan 
    • 9.5 小结 
    • 第10章 接口和抽象类 
    • 10.1 接口的概念 
    • 10.2 从技术角度看接口 
    • 10.3 实现System.IComparable 
    • 10.4 抽象类 
    • 10.5 小结 
    • 第11章 枚举 
    • 11.1 枚举概览 
    • 11.2 类中的枚举 
    • 11.3 switch语句中的枚举 
    • 11.4 小结 
    • 第12章 泛型 
    • 12.1 为什么要使用泛型 
    • 12.2 泛型介绍 
    • 12.3 应用限制 
    • 12.4 编写泛型类型 
    • 12.5 小结 
    • 第13章 集合 
    • 13.1 概述 
    • 13.2 List类 
    • 13.2.1 重要的方法 
    • 13.2.2 List示例 
    • 13.3 HashSet类 
    • 13.3.1 有用的方法 
    • 13.3.2 HashSet示例 
    • 13.4 Queue类 
    • 13.4.1 有用的方法 
    • 13.4.2 Queue示例 
    • 13.5 Dictionary 类 
    • Dictionary示例 
    • 13.6 小结 
    • 第14章 输入输出 
    • 14.1 文件和目录的处理与操作 
    • 14.1.1 创建和删除文件 
    • 14.1.2 创建和删除一个目录 
    • 14.1.3 操作File和Directory的属性 
    • 14.1.4 列出目录下的文件 
    • 14.1.5 复制和移动文件 
    • 14.2 输入/输出流 
    • 14.3 读取文本(字符) 
    • 14.4 写入文本(字符) 
    • 14.5 读取和写入二进制数据 
    • 14.6 小结 
    • 第15章 WPF 
    • 15.1 概述 
    • 15.2 应用程序和窗口 
    • 15.2.1 简单的WPF应用程序1 
    • 15.2.2 简单的WPF应用程序2 
    • 15.3 WPF控件 
    • 15.4 面板和布局 
    • 15.5 事件处理 
    • 15.6 XAML 
    • 15.7 小结 
    • 第16章 多态 
    • 16.1 定义多态 
    • 16.2 多态的应用 
    • 16.3 一个绘图程序中的多态 
    • 16.4 小结 
    • 第17章 ADO.NET 
    • 17.1 介绍ADO.NET 
    • 17.2 访问数据的5个步骤 
    • 17.2.1 安装数据提供者 
    • 17.2.2 获取一个数据库连接 
    • 17.2.3 创建一个DbCommand对象 
    • 17.2.4 创建一个DbDataReader 
    • 17.3 连接到SQL Server的示例 
    • 17.4 小结 
    • 附录A Visual Studio Express 2012 for Windows Desktop 
    • A.1 硬件和软件的要求 
    • A.2 下载和安装 
    • A.3 注册Visual Studio Express 2012 
    • A.4 创建一个项目 
    • A.5 创建一个类 
    • A.6 运行一个项目 
    • 附录B Visual C# 2010 Express 
    • B.1 硬件和软件的要求 
    • B.2 下载和安装 
    • B.3 注册Visual C# 2010 Express 
    • B.4 创建一个项目 
    • B.5 创建一个类 
    • B.6 运行一个项目 
    • 附录C SQL Server 2012 Express 
    • C.1 下载SQL Server 2012 Express 
    • C.2 安装SQL Server 2012 Express 
    • C.3 连接到SQL Server并创建一个数据库

    上一篇:React Native应用开发实例解析  下一篇:C语言解惑:指针 数组 函数和多文件编程

    展开 +

    收起 -

    C#编程相关电子书
    学习笔记
    网友NO.542089

    C#如何在海量数据下的高效读取写入MySQL

    前提 由于工作的原因,经常需要对海量数据进行处理,做的数据爬虫相关,动辄千万级别的数据,单表几十个G都是都是家常便饭。 主要开发语言是C#,数据库使用的是MySQL。 最常见的操作便是 select 读取数据,然后在C#中对数据进行处理, 完毕后再插入数据库中。 简而言之就 select - process - insert三个步骤。 对于数据量小的情况下(百万级别 or 几百兆)可能最多1个小时就处理完了。但是对于千万级数据可能几天,甚至更多。 那么问题来了,如何优化?? (数据库的一览,有图有真相) 第一步 解决读取的问题 跟数据库打交道的方式有很多,我来列举下吧: 1. 【重武器-坦克大炮】使用重型ORM框架,比如EF,NHibernat 这样的框架。 2. 【轻武器-AK47】 使用Dapper,PetaPoco之类,单cs文件。灵活高效,使用简单。居家越货必备(我更喜欢PetaPoco :)) 3. 【冷兵器?匕首?】使用原生的Connection、Command。 然后写原生的SQL语句。。 分析: 【重武器】在我们这里肯定直接被PASS, 他们应该被用在大型项目中。 【轻武器】Dapper,PetaPoco 看过源码你会发现用到了反射,虽然使用IL和缓存技术,但是还是会影响读取效率,PASS 好吧那就只有使用匕首,原生SQL走起, 利用DataReader 进行高效读取,并且使用索引取数据(更快),而不是列名。 大概的代码如……

    网友NO.567578

    php实现和c#一致的DES加密解密实例

    PHP实现和c#一致的DES加密解密,可以从网上搜到一大堆,但是测试后发现都没法用。以下正确代码是我经过苦苦才找到的。希望大家在系统整合时能用的上。 注意:key的长度为8位以内。 //C# 版DES 加解密算法 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Security.Cryptography; using System.IO; using System.Text; public class Des{ //加解密密钥 private static string skey = "12345678"; //初始化向量 private static byte[] DESIV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; #region DESEnCode DES加密 public static string DESEnCode(string pToEncrypt, string sKey) { pToEncrypt = HttpContext.Current.Server.UrlEncode(pToEncrypt); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = Encoding.GetEncoding("UTF-8").GetBytes(pToEncrypt); //建立加密对象的密钥和偏移量 //原文使用ASCIIEncoding.ASCII方法的GetBytes方法 //使得输入密码必须输入英文文本 des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.Flu……

    网友NO.580569

    jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】

    本文实例讲述了jQuery+C#实现参数RSA加密传输功能。分享给大家供大家参考,具体如下: 注意: 参数传递的+号处理,在传输时会把+变成空格,不处理后端就报错了。 1、前端代码 !DOCTYPE htmlhtmlhead meta name="viewport" content="width=device-width" / titleLogin/title script src="jquery-1.10.2.min.js"/script script src="jsencrypt.min.js"/script script type="text/javascript" $(function () { var encrypt = new JSEncrypt(); encrypt.setPublicKey($("#tra").val()); var data = encrypt.encrypt("123456789"); alert(data); $("#btn").click(function () { $.ajax({ url: '@Url.Action("Login")', data: "pwd=" + encodeURI(data).replace(/\+/g, '%2B'), //+号的处理:因为数据在网络上传输时,非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,而base64编码在传输到后端的时候,+会变成空格,因此先替换掉。后端再替换回来 type: 'post', success: function (msg) { alert(msg); } }); }); }); /script/headbody div input type="button" id="btn" value="点我" / textarea id="tra" rows="15" cols="65" MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCa4KHNwDX44gGmmIAtRu4gjVYtGWZzcm4t+1wjUD4dn7fMLPvuK7ai4UrfDeEJE1RPwudJw+lJ6crql8wSIg7/DbTl G3ihsCT6dT9H5B9OoeR7K9VWUesaW/iyVL6HXiYOANabW14pvJATDmdq91Tfgp6P SQyvdfiRdV4r07crpQIDAQAB /textarea hr/ 注意+号的处理 /div/body/html 2、后端代码 public class IndexController : Controller{ public ActionResult Login() { return View(); } [HttpPost] p……

    网友NO.23626
    网友NO.23626

    C# 学习心得
    函数或者说方法都是写在类下的,我们可以通过函数名来调用它们。首先,我们要弄清楚为什么会有函数或者说方法这种东西?这里,我们使用了与前一篇同样的思维方式,先从它的目的或者实用价值出发。当我们在编写程序的时候,有时会遇到这样的情况。比如说,求某个数的阶乘。我们会写出一连串的语句,以得到我们的结果。可是,如果我们后面又要求另一个数的阶乘,我们又要重写一遍。当然,如果你说复制粘贴,那确实不错。但是,如果某种情况要改的地方很多呢?这显然就不是一种简单的途径。正因为如此,才有了我们的函数或者说方法。
    我们如何来定义一个方法?首先,我们说,方法是写在类的下面的。其次,就像声明变量变量一样,首先要写上关键字或者说修饰符。然后,是这个方法的名称,这是我们调取它的方式。最后加上括号和花括号里面的方法体。方法体即是那些重复的一连串的语句,括号是一种格式。如果你问,括号里写的是什么东西,官方说法是“参数”。为什么会有这个?举个例子,你写了一个求平均数的方法,你写上方法名和括号,发现不对。为啥?因为你没说求那几个数的平均数。所以,你得在定义方法的时候在括号里写上那几个数的数据类型,用“,”隔开。然后,当你引用的时候在括号里写那几个数。这样,你可以写上不同的数,得到不同的结果,这就好像数学中的函数。
    其实,后面的结构体或者枚举类型也是一个意思。它们都是为了某种需求而创立的,并不是什么突兀的东西。我建议,找一个最简单的例子,然后试着去理解它,这绝对比死记硬背强多了。为了应付更多抽象的概念,我建议使用层次结构。概念之间总是存在逻辑关联的,如果能够理解它们的从属关系那便是极好的。实在理解不了,就找几个实例看看吧,想要背过估计是行不通的。

    网友NO.34953
    网友NO.34953

    C#语言特点:
    1、 泛型:泛型就是通过将数据类型参数化从而实现了代码的更为灵活的复用,泛型的出现使得C#能够使用同一段代码来操作多种数据类型。泛型无疑是C#2.0最重大的改进,它的出现赋予了C#代码更强的类型安全,更好的复用,更高的效率和更清晰的约束。
    2、 匿名方法:匿名方法允许我们将代码直接与委托实例相关联。
    3、 迭代器:迭代器允许我们更加方便的编写用于foreach语句的类型。在我看来,迭代器的出现只不过是改进了1.0中不便的可用foreach语句类型的编写限制,简化了一些接口。
    4、局部类型通过partial关键字来声明。
    5、 可以为空的变量类型。
    6、 不能被继承。

    网友NO.21423
    网友NO.21423

    C# 学习心得
    对于一个初学者来说,这门语言是纷繁复杂、晦涩难懂的。并且,当我们试图想要理清它的知识结构的时候,却发现我们很难找到它们相互之间的联系。所以,我建议,我们不应该从知识本身入手,而是反过来,从它所要实现的目标或者应用方面着手。
    首先,让我们清空我们的大脑,将注意力转移到几个关键词上:条件语句、循环语句、数组、集合。
    我们来考虑第一个关键词:条件语句。条件语句又称分支语句或者选择语句。它所实现的功能是根据不同的条件作出选择。最简单的条件语句即if语句,它相当于一个判断,满足条件即执行,否则跳过。其次便是if...else语句,即二选一。接着还有if...else if...else,即多选一。如果我们很轻易的掌握了这些内容,那么我们便可以来考虑一下条件语句的嵌套。我们为什么要使用嵌套呢?因为有时我们需要一个大前提。比如说,你要找一个女朋友。那么,首先你要判断对方是不是女的。在”女的“这个大前提下,你再判断她是不是你不是你喜欢的类型。这种判断可以一直延续下去,这就是嵌套。
    接下来让我们考虑第二个关键词:循环语句。什么是循环语句呢?要弄清这个概念,我们只需要考虑一个最简单的案例,求和从1加到100。如果我们自己来算的话,会算很长时间,如果我们不用高斯公式。然而,如果我们使用for循环,便可以很轻易的实现。首先,我们定义一个循环变量与一个总和。然后,给出一个判定条件。最后,给出我们的循环内容。具体来说,我们让循环变量从1开始,判断它是否<=100,如果是,则把它加到总和上,然后让循环变量加1,再进入循环。。。这样,我们最终得到了总和。很自然的,如果我们多尝试几次,便能把它和条件语句结合起来使用。循环语句也有自己的嵌套,循环语句的嵌套主要用于排序和打印。我们来讨论一下排序问题。假如有n个自然数,我们对它从小到大排序。我们是怎样做的呢?我们的基本原理是,先确定最小的数,把它放到一号位,再确定第二小的数,把它放到二号位,依此类推。。。具体来说,为了确定最小的数,我们拿一号位上的数依次与后面的数比较,如果后面的某个数比它小,则互换两者的位置。这样,比较完一圈之后,我们成功的把最小的数换到了一号位。二号位、三号位等也是同样的道理,与它们后面的数依次比较,换位。我们再来说说打印问题。打印问题的基本原理是,一行一行的打印,即先打印第一行,再打印第二行,依此类推。而打印每一行的时候,又要一个数据一个数据的打印。所以,一般情况下,这种打印需要两个循环。外循环控制行,内循环控制列。具体来说,当外循环变量为初值的时候,打印第一行,转入内循环,内循环的循环变量逐次增加,直到打印完第一行的所有数据,转入外循环,打印第二行。。。
    最后,让我们来考虑一下数组和集合。首先,我们要问的是,什么是数组?什么是集合?它们有什么用?我们来举个例子,比如说,我们现在有这样一组数5,7,3,54,32,45,我们要对它从小到大排列。前面说了,对于这种排序,我们可以使用for循环的嵌套。表面上看起来,这是行得通的。然而,当我们实际去做的时候,却遇到了麻烦。我们不能把每个数和它的位置对应起来。换句话说,我们写不出循环的判断条件和循环的内容。因为,每次的条件和内容都不一样。然而,一维数组的存在便能很好的解决这个问题。一个数组就好像一排座位,这些座位的座位号依次排列,使得我们可以很方便的在循环语句中使用它们。我们要做的,就是把这些数依次放到这些座位上。当我们要使用这些数的时候,只要利用它们的座位号就能简单的引用它们了。二维或者多维的情况依次类推,只不过它们的坐标也相应的变成了二维坐标或者多维坐标,你可以联系数学中的坐标来加以理解。集合呢?它相当于一维数组的推广。在数组中,元素必须为同一类的数。而在集合中,元素可以是数或者字符。这样做的好处在于,如果我们要定义不同类型的数或者字符,不用定义多个数组,而可以把它们统统放入集合里。当然了,我们也同样通过座位号去引用它们。
    好了,到了这里,也许你会问,其他知识怎么办,它们就无关紧要吗?我是这样来考虑的,我把上述几个作为核心概念或者形象的描述为房屋的整体框架,而其他知识则类似于砖头和瓦砾。因为它们都非常简单也容易理解,只要记住会用就行了。这些内容包括:输入、输出语句,运算符、转义字符、变量、常量的声明、类型的转换、string类、Math类。在各种的类中还有各种不同的方法,比如字符串的各种操作、Datetime的有关处理。对于这些内容,我的建议是,把它们整理出来记到某个固定的地方。当你想不起某个方法的时候,再去看看也就是了,没必要非得把它们全背会,这种做法实在太过于愚蠢,也完全不符合实际需求。

    Copyright 2018-2019 xz577.com 码农之家

    版权责任说明