第一章      .NET体系结构 本章内容: 编译和运行面向.NET的代码 Microsoft中间语言(Microsoft Intermediate Language,MSIL或简称IL)的优点 值类型和引用类型 数据类型化 理解错误处理和特性 程序集..NET基类和名称空间 整本书都讲强调,c#语言不能孤立地使用而必须和.NET Framework一起考虑.C#编译器专门用于.NET,这表示用c#编写的所有代码总是在.NET Framewok 中运行.对于c#语言来说,可以得出两个重要的结论…
第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用System.Console执行控制台I/O 使用内部注释和文档编制功能 预处理器指令 C#编程的推荐规则和约定 2.1 第一个c#程序 2.1.1 代码 using System; namespace Wrox { Public class MyFirstClass { static void Ma…
第三章 对象和类型 本章的内容: 类和结构的区别 类成员 按值和按引用传送参数 方法重载 构造函数和静态构造函数 只读字段 部分类 静态类 Object类,其他类型都从该类派生而来 3.1 类和结构 类和结构都是创建对象的模板,每个对象都包含数据,并提供了处理和访问数据的方法 结构和类的区别是他们在内存中的存储方式.访问方式(类是存储在堆上的引用类型,而结构是存储在栈上的值类型)和他们的一些特征(如结构不支持继承).较小的数据类型使用结构可提高性能.但在语法上,结构和类非常相似,主要的区别是使用…
<ASP.NET MVC 4高级编程(第4版)> 基本信息 作者: (美)Jon Galloway    Phil Haack    Brad Wilson    K. Scott Allen    译者: 孙远帅 邹权 丛书名: .NET开发经典名著 出版社:清华大学出版社 ISBN:9787302330035 上架时间:2013-8-22 出版日期:2013 年9月 开本:16开 页码:211 版次:4-1 所属分类:计算机 > 软件与程序设计 > .NET > ASP.…
<UNIX环境高级编程(第3版)> 基本信息 原书名:Advanced Programming in the UNIX Environment (3rd Edition) (Addison-Wesley Professional Computing Series) 原出版社: Addison-Wesley Professional 作者: (美)W. Richard Stevens    Stephen A. Rago 译者: 戚正伟 张亚英 尤晋元 出版社:人民邮电出版社 ISBN:9787…
原文网址:http://blog.csdn.net/hubbybob1/article/details/40859835 大家好,从这周开始学习apue<UNIX环境高级编程第三版>,在此,我要感谢网易的一个工程师朋友和室友,没有他们,我不会开始真正的学习这本书,希望大家以后开始慢慢进步.废话少说,直接上课后习题了. UNIX高级编程第一章习题答案: 1.1在系统上验证,除根目录外,目录l和l l是不同的. 答:这个验证有很多方法可使用命令ls .cd.vim等,目录.指向当前目录,目录..指…
Unix环境高级编程(第三版) 代码编译 本文地址:http://blog.csdn.net/caroline_wendy 时间:2014.10.2 1. 下载代码:http://www.apuebook.com/code3e.html 2. 安装依赖库:sudo apt-get install libbsd-dev  3. 进入下载文件夹make 4. 复制头文件和动态链接库 sudo cp ./include/apue.h /usr/include/ sudo cp ./lib/libapu…
学习Linux已经有2个月了,最近被期末考试把进度耽误了,前几天把Unix环境高级编程看了两章,感觉对Linux的整体有了一些思路,今天尝试着对第一章涉及到的一个简单的交互式shell编译运行一下,结果发现gcc不成功,百度了一下发现很多解决的帖子,但是都是基于第二版的,很多帖子都提到要进入apue.2e目录,然后修改Make.defines.linux文件,将里面的WKDIR改为自己当前的工作目录,然而我进入第三版对应的apue.3e目录下的Make.defines.linux的文件下,并没有…
第七章 委托和事件 回调(callback)函数是Windows编程的一个重要方面,实际上是方法调用的指针,也称为函数指针. .Net以委托的形式实现了函数指针的概念,.Net的委托是类型安全的. 委托 使用委托的时候,需要先声明,后实例化. 声明委托 delegate void MethodInvoker(); 可以在委托前加public,private,protected.   实际上,定义委托是指定义一个新类,委托实现为派生自基类System.MulticastDelegate.   使用…
[1]7.1 相同类型的多个对象 1.假如你需要处理同一类型的多个对象,你可以使用集合或者数组. 2.如果你想使用不同类型的不同对象,你最好将它们组合成class.struct或者元组. [2]7.2.1 数组的声明 数组是一种数据结构,它包含一系列同类型的元素.数组通过声明内部元素类型,并随后紧跟着一对中括号来定义一个数组变量.举个例子,假如你要定义整型数组,你可能会像这么写: int[] myArray; [3]7.2.2 数组的初始化 myArray = new int[4]; 1.变量m…
C#已更新为更快的速度.主要版本7.0是2017年3月发布,次要版本7.1和7.2很快发布在2017年8月和2017年12月.通过项目设置,您可以与每个应用程序一起分发,是开源的,不可用仅适用于Windows的桌面版本,但也适用于许多不同的版本Windows设备,以及Linux和OS X.对于创建Web应用程序,ASP.NET Core 1.0是完整的重写ASP.NET.此版本并非完全落后与旧版本兼容,需要对现有版本进行一些更改ASP.NET MVC代码(使用ASP.NET Core MVC).…
---恢复内容开始--- 第二章 核心C# 2.7 命名空间可以使用别名,但是这样做有什么好处? 2.12 C#预处理器指令 #define DEBUG #if DEBUG Console.WriteLine("hahaha..."); #endif ---恢复内容结束--- 第二章 核心C# 2.7 命名空间可以使用别名,但是这样做有什么好处? 2.12 C#预处理器指令 #define DEBUG #if DEBUG Console.WriteLine("hahaha..…
.NET的CLR把源代码编译为IL,然后又把IL编译为平台专用代码. IL总是即时编译的,这一点的理解上虽然明白.当用户操作C#开发的软件时,应该是操作已经编译好的程序.那么此时安装在客户机上的程序是什么状态呢?如果是已经编译为平台专用代码了. 那么IL的即时编译的优点是体现在哪里?如果安装在客户机上的代码是IL代码.那么就能说通了.这一点可能要在后续的读书中学到. 语言的互操作性,这一点就我所知,应该不会有太多的人在乎.可能是没有接触到这种的项目. F#是函数编程语言.常用于财务和科学应用程序…
一.前言 C# 简洁.类型安全的面向对象的语言. .NET是一种在windows平台上编程的架构——一种API. C#是一种从头开始设计的用于.NET的语言,他可以利用.NET Framework及其开发环境中的所有新增功能,面向对象的编程方法. 组件对象模型 COM Component Object Model .NET的优点:面相对象编程,优秀的设计,语言无关,对动态Web页面的更好支持,高效的数据访问,代码共享,增强的安全性,对安装没有任何影响,web服务的支持. .net framewo…
第一章 .Net体系结构 1,公共语言运行库(Common Language Runtime, CLR) .Net Framework的核心是其运行库的执行环境,称为公共语言运行库,或.Net运行库.通常在CLR的控制下运行的代码称为托管代码(managed code).   在CLR执行编写好的源代码之前,需要编译它们.在.Net中,编译分为两个阶段: 把源代码编译成Microsoft中间语言(Microsoft Intermediate Language,MSIL). CLR把IL编译为平台…
[1]8.1 引用方法 1.委托是指向方法的.NET地址变量. 2.委托是类型安全的类,定义了返回类型和参数类型.委托类不单单只包含一个方法引用,它也可以保存多个方法的引用. 3.Lambda表达式直接跟委托相关.当参数是类型是一种委托类型,你可以使用Lambda表达式来实现一个被委托引用的方法. [2]8.2 委托 方法在调用前,它需要被关联成某个类的实例.因此不允许直接访问方法地址.而当你需要这么处理的时候,你可以将方法细节封装成一种新的对象:委托. 委托则是存储了一个方法或者多个方法的访问…
[1]6.2 运算符 1.&符在C#里是逻辑与运算.管道符号|在C#里则是逻辑或运算.%运算符用来返回除法运算的余数,因此当x=7时,x%5的值将是2. [2]6.2.1 运算符的简写 1.下面的例子++运算符来演示前缀式和后缀式之间的不同表现: int x = 5; if (++x == 6) // true – x先自加,再进行判断,此时x为6,因此为true. { Console.WriteLine("This will execute"); } if (x++ == 7…
[1]5.1 泛型概述 1.通过泛型,你可以创建独立于特定类型(contained types)以外的方法和类,而不用为不同类型编写多份同样功能的代码,你只需要创建一个方法或者类. 2.泛型类使用泛型类型用来代替所需的特定类型.这一点能满足类型安全的需求:如果传入的类型不满足泛型类的定义,编译器就会及时提示一个错误. 3.用在接口和方法上的泛型. 4.泛型并不仅仅只由C#进行构造,它同时在CLR(Common Language Runtime)里也定义了.这使得它可以在VB里实例化同一个泛型类型…
[1]3.1 创建及使用类 1.构造函数:构造函数的名字与类名相同: 使用 new 表达式创建类的对象或者结构(例如int)时,会调用其构造函数.并且通常初始化新对象的数据成员. 除非类是静态的,否则会为没有构造函数的类,自动生成一个默认构造函数,并使用默认值来初始化对象字段. 构造函数可以有参数,可以以多态的形式存在多个构造函数. 构造函数分为:实例构造函数,静态构造函数,私有构造函数.   参考:https://www.cnblogs.com/cang12138/p/8297270.html…
5.1 表单使用 5.1.1 action 和 method 特性 <form action="/Home/Index">     <input name="q" type="text"/>     <input value="提交" type="submit" /> </form>   如果没有 method 默认是: get 方法. 5.1.2 GET 方…
操作系统:Ubuntu 12/14 1.下载书中的源代码:点击下载 2.编译 tar -zxvf *.tar.gz cd ./apue.3e make 报错: can,t find -lbsd 解决办法: 添加 libbsd.a 的静态链接库 sudo apt-get install libbsd-dev 3.继续编译 make 4.在编译成功的基础上,安装 apue.h 文件及其对应的静态链接库 libapue.a sudo cp ./include/apue.h /usr/local/inc…
CH1-2:基础知识.标准化 1 文件和目录 文件名:不能含/(分隔路径)和null(终止路径),255字符. 目录处理:opendir() readdir() closedir() 更改工作目录:chdir() 2 输入输出 STDIN_FILENO STDOUT_FILENO 3 程序和进程 进程控制:fork() exec() waitpid() 4 出错处理 string.h:  char * strerror(int errnum)//返回errnum映射的出错信息字符串指针 stdi…
泛型接口的抗变和协变 https://www.cnblogs.com/yanfang/p/6635302.html ①泛型接口,如果泛型类型前没有关键字out或者in来标注,则该泛型接口不支持抗变和协变,即只能是什么对象指向什么类型. ②如果泛型接口,泛型类型前有关键字out标注,则表示其方法的输出为T类型,也就是方法的返回值.同时该泛型接口支持协变,即,可以用父类的类型指向子类的对象. ③如果泛型接口,泛型类型前面有关键字in标注,则表示其方法的输入为T类型,也就是方法的参数.该泛型接口支持抗…
操作环境:RHEL7.0 部署apue.h实例运行环境 1.下载头文件src.3e.tar.gz 2.解压 tar zxvf src.3e.tar.gz 3.创建普通用户(我仿照书上创建的sar用户) useradd sar 4.修改文件 * 文件apue.3e/Make.defines.linux加入下面所示内容,指定工作目录 6 WKDIR = /home/sar/apue.3e * 文件apue.3e/threadctl/getenv1.c和apue.3e/threadctl/getenv…
第三十一章 Windows窗体 创建Windows窗体应用程序 在文本编辑器中输入: /* * form.cs * a simple windows form * */ using System; using System.Windows.Forms;   namespace NotepadForms { public class MyForm:System.Windows.Forms.Form { public MyForm() { }   [STAThread] static void Ma…
第六章 运算符和类型强制转换 1,运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ -- 移位运算符 << >> 比较运算符 == != <> <= >= 赋值运算符 = += -= *= /= %= &= |= ^= <<= >>= 成员访问运算符 . 索引运算符 [] 数据类型转换运算符 () 条件运算符…
第五章 数组 1,简单数组 声明:int[] myArray; 初始化:myArray = new int[4]; 为数组分配内存. 还可以用如下的方法: int[] myArray = new int[4]{1,2,3,4}; int[] myArray = new int[]{1,2,3,4}; int[] myArray = {1,2,3,4}; 如果数组中的元素是引用类型,必须为每个数组分配内存: public class Person { public string FirstName…
第四章 继承 1,继承的类型 实现继承: 一个类派生于一个基类型,拥有该基类型所有成员字段和函数. 接口继承 一个类型只继承了函数的签名,没有继承任何实现代码.   2,实现继承 class MyDerivedClass:MyBaseClass,IInterface1,IInterface2 { } public struct MyderivedStruct:IInterface1, IInterface2 { } 类只能继承一个基类,但可以继承多个接口 结构不能继承结构,但是结构能够继承接口…
第三章 对象和类型 1,类和结构 类存储在托管堆上 结构存储在堆栈上   2,类成员 类中的数据和函数称为类成员 数据成员 数据成员包括了字段.常量和事件   函数成员 方法:与某个类相关的函数,可以是静态方法,也可以是实例方法. 声明: [modifiers] return_type MethodName([parameters]){} 调用函数时均通过值传递,值类型传递值,引用类型传递引用. 方法的参数声明为ref,即按引用传递,但是调用时变量仍需初始化 可以使用out关键字声明方法参数.该…
第二章 基础 1,helloworld示例: helloworld.cs using System; using System.Collections.Generic; using System.Linq; using System.Text;   namespace HelloWorld { class Program { static void Main(string[] args) { Console.WriteLine("Hello Wold. C#"); return; }…