自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

见证大牛成长之路的专栏

对于程序员来说,代码就是生命!

  • 博客(66)
  • 收藏
  • 关注

原创 C#高级编程三十三天----Array类

Array类创建数组Array intArray1 = Array.CreateInstance(typeof(int), 5);for (int i = 0; i {     intArray1.SetValue(33, i);}for (int i = 0; i {     Console.WriteLine(intArray1.GetValue(i));

2015-06-30 14:02:13 957

原创 shell学习三十三天----关于重定向

关于重定向额外的重定向运算符使用set -C搭配POSIX shell提供了防止文件意外截断的选项:执行set -C命令可打开shell所谓的禁止覆盖选项,当它再打开状态时,单纯的>重定向遇到目标文件已存在时,就会失败.>|运算符则可以另noclobber选项失效. 提供行内输入的和使用program得力miter,可以在shell脚本正文内提供输入数据;这样数据叫嵌入文件.在

2015-06-30 13:00:20 1983

原创 C#高级编程三十二天----数组基础

数组如果需要使用同一类型的多个对象,就可以使用数组.数组是一种数据结构,他可以包含同一类型的多个元素.数组的声明在声明数组时,应先定义数组中元素的类型,其后是一对方括号核一遍变量名.例如:生命一个包含整型元素的数组:int [] array;数组的初始化声明了数组后就必须为数组分配内存,以保存数组的所有元素.数组是引用类型,所以必须给它分配堆上的内存.为此,应使用new运算

2015-06-29 16:55:30 980

原创 shell学习三十二天----read读取一行

标准输入输出与标准错误输出标准输入/输出可能是软件工具设计原则里最基本的观念了.他的构想是:程序应有一个数据来源,数据出口(数据要去哪里),以及报告问题的地方.他们分别叫做标准输入,标准输出和标准错误输出.程序应该不知道也不在意其输入与输出背后是另一个执行的程序!程序可以预期,在他启动的时候,这些标准位置都已打开,且已经准备好可以使用了. 默认情况下,程序会读取标准输入,写入标准输出,

2015-06-29 12:56:49 4067

原创 C#高级编程三十一天----泛型总结

C#泛型总结C#中的所谓的泛型程序设计和C++中相应的模版类似.泛型方法C#中的泛型方法是指使用了类型参数的方法成员,案例:   static void Main(string[] args)        {            int a=1;            int b=2;            Swap(ref a,ref b);       

2015-06-28 15:46:42 1146

原创 C#高级编程三十天----泛型结构,泛型方法,泛型委托

泛型结构泛型结构和泛型类几乎是一直的,只是泛型结构没有继承的特性..NET平台提供的一个泛型结构是(可空类型)Nullablle.可空类型的引入,主要是为了解决数据库语言中的数字与编程语言中的数字的区别(数据库中数字可以为空,编程语言中数字不可为空).因为Nullable使用过于的繁琐,于是就引入了一种特殊的语法,使用个”?”运算符.例:int? x1;Nullable x2; 

2015-06-28 14:42:33 1984 1

原创 shell学习小总结----本章小结

本章小结变量在正是一点的程序里是必备项目.shell的变量会保留字符串值,而大量的运算符可以在${var...}里使用,让你控制变量的结果. shell提供了许多的特殊变量(例如#?与$!),用来访问特殊信息,例如,命令退出状态.shell也有许多预定义的特殊变量,例如PS1----用来设置主要提示符.位置参数与$*和$@这类的特殊变量,则用来在脚本(或函数)被引用是,让用户可以访问被

2015-06-28 13:05:16 839

原创 shell学习三十一天----函数问题

函数案例一:#!/bin/bashhello () {        echo "hahahah"}hello 执行函数,结果为:hahaha  案例二:#!/bin/bashfunWithReturn(){        echo "the function is to get the sum of two number"     

2015-06-28 12:50:31 758

原创 shell学习三十天----break,continue,shift,getopts

break和continue这两个命令分别用来退出循环,或跳到循环体的其他地方.使用while与break,等待用户登录bash代码:printf “Enter username: ”read userwhile truedoif who | grep “$user” >/dev/nullthen break;fisleep 30done 

2015-06-28 11:42:13 1812

原创 shell学习二十九天----循环

循环bash shell中主要提供了三种循环:for,while,untilfor循环for循环的运作方式是将串行的元素取出,依次放入指定的变量中,然后重复执行在do和done之间的命令,知道所有元素取尽为止.其中,串行是一些字符串的组合,彼此使用$IFS所定义的分隔符(如空格符)隔开,这些字符串成为为字段.语法:for 变量 in 串行//将串行中的字段迭代放入变量中

2015-06-27 15:28:35 790

转载 C#高级编程二十九天----泛型接口

泛型接口定义先来看一个简单的例子:public class Sharp{}public class Rectangle:Sharp{}上面定义了两个简单的类,一个是图形类,一个是矩形类;他们之间有简单的继承关系,正确的写法:Sharp sharp=new Rectangle();就是说“子类引用可以直接转化成父类引用”,或者说Rectange类和Sharp类之间

2015-06-27 14:14:11 854

原创 C#高级编程二十八天----泛型类的功能

泛型类的功能在创建泛型类时,还需要一些其他的C#关键字.例如,不能把null赋予泛型类型.此时,可以使用default关键字.如果泛型类型不需要object类的功能,但需要调用泛型类上的某些特定方法,就可以定义约束.例如:public class DocumentManager    {        private readonly Queue documentQueue =

2015-06-27 10:55:07 1291

原创 C#高级编程二十七天----创建泛型类

创建泛型类首先介绍一个一般的,非泛型的简化链表类,可以包含任意类型的对象,以后再把这个类转化为泛型类.在立案表中,一个元素引用下一个元素.所以必须创建一个类,他将对象封装在链表中,并引用下一个对象.类LinkedListNode包含一个属性value,该属性用构造函数初始化,另外,LinkedlistNode类包含对链表中下一个元素和上一个元素的引用,这些元素都可以从属性中访问. 

2015-06-26 14:19:19 926

原创 C#高级编程二十六----泛型

泛型有了泛型,就可以创建独立于被包含类型的类和方法了.我们不必给不同的类型编写功能相同的许多方法或类,只创建一个方法或类即可.另一个减少代码的选项是使用object类,但object类不是类型安全的,泛型类使用泛型类型,并可以根据需要用特定的类型替代泛型类型.这就保证了类型安全性:如果某个类不支持泛型类,编译器就会报错.对于C++模版,在特定的类型实例化模板时,需要模版的源代码.相反,

2015-06-26 11:26:59 894

原创 shell学习二十八天----case语句

case语句case $1 in-f)... 针对-f玄子昂的程序代码;; -d | --directory) #允许长选项... 针对-d选项的程序代码;;*)echo $1:unkonw option >$2exit 1#在esac之前的;;形式是一个好习惯,不过并非必要esac 这里我们看到,要测试的值出现在case和in之间.将值

2015-06-26 10:22:43 750

原创 shell学习二十七天----退出状态和if语句

退出状态每一条命令;不管是内置的,shell函数,还是外部的,当它退出时,都会返回一个小的整数值给引用它的程序,这就是大家所熟知的程序的退出状态.在shell下执行进程是,有很多方式可取用程序的退出状态.以管理来说,退出状态为0表示”成功”,也就是,程序执行完成且为遭遇到任何问题.其他任何的退出退出状态都为失败.内置变量?(使用命令echo $?)查看上一条命令的退出状态.案例:当你输

2015-06-26 09:33:43 11176

原创 shell学习二十六天----变量与算数

变量与算数shell脚本与函数还有位置参数的功能;传统的说法应该是”命令行参数”;shell为内嵌算数提供了一种标记法,称为算数展开.shell回对$((...))里的算符表达式进行计算,再将计算后的结构放回到命令的文本内.有两个相似的命令提供变量的管理,一个是readonly,它可以使变量称为只读模式;而赋值给它们是被禁止的.在shell程序中,这是创建符号常量的一个好方法:da

2015-06-25 16:10:49 966

转载 shell学习二十五天----神器的管道符

神器的管道符一.从结构化文本文件中提取数据1.sed -e 's=/.*=='   去掉第一个/和后面的所有字符jones:*:32713:899:Adrian W. Jones/OSD211/555-0123:/home/jones:/bin/ksh输出为jones:*:32713:899:Adrian W. Jones| -e 's=^\([^:]*\):\(.*\) \(

2015-06-24 12:18:47 1084

原创 C#高级编程二十五天----接口

接口如果一个类派生自一个接口,声明这个类就会实现某些函数.并不是所有的面向对象的语言都支持接口.例如,有一个接口:IDispoable,包含一个方法Dispose(),该方法又类实现,用于清理代码:public interface IDisposable{void Dispose();}上述代码说明,声明接口在语法上与声明抽象类完全相同,但不允许提供接口中任何成员的实现

2015-06-23 16:48:05 886

原创 C#高级编程二十四天----修饰符

修饰符修饰符即应用于类型或成员的关键字.修饰符可以指定方法的可见性,如public或private,还可以指定一项的本质,如刚发的vritual或abstract. 可见性的修饰符修饰符应用于说明public所有类型或成员任何代码均可以访问该项protected类型和

2015-06-23 14:56:50 647

原创 shell学习二十四天----提取开头或结尾数行

提取开头或结尾数行有时,会需要从文本文件里把几行字----多半是靠近开头或结尾的几行,提取出来;或者,有时只要瞧瞧工作日志的后面几行,就可以了解最近工作活动的大概情况.可以用下面的方式显示标准钱n条记录,或是命令行文件列表中的每一个前n条记录.head -n n [file(s)]head -n [file(s)]awk ‘FNRsed -e nq [file(s)]sed

2015-06-23 14:37:08 2546

原创 shell学习二十三天----打印

如果希望打印文件,最好预先处理一下,包括调整边距,设置行高,设置标题等,这样打印出来的文件更加美观.当然,不处理也能打印,但是可能会比较丑陋.pr命令pr命令就是转换文件格式的,可以把较大的文件分割成多个页面进行打印,并未每个页面添加标题.语法:pr option(s) filename(s)pr命令仅仅改变在屏幕上的输出样式,不改变文件本身,和sed有点类似.常见选项如下:

2015-06-22 12:41:13 700

原创 shell学习二十二天----计算行数,字数以及字符数

计算行数,字数以及字符数wc命令可能是linux工具集里最古老也最简单的工具程序.wc的默认输出是一行报告,包括行数,字数以及字节数:echo this is a test of the emergency broadcast system | wc      1       9      49 如果要求仅输出部分结果,可以使用的选项有:-c(字节数),-l(行数),-w(字数);

2015-06-22 12:06:44 1776

原创 C#高级编程二十二天----继承的类型

继承的类型在面向对象的编程中,有两种截然不同的集成类型:实现继承和接口继承实现继承:表示一个类型派生于一个基类型,它拥有该基类型的所有成员字段和函数.在实现继承中,派生类型采用基类型的每个函数的实现代码,除非在派生类型的定义中指定重写某个函数的实现代码.在需要给现有的类型添加功能,或许=多相关的类型共享一组重要的公用功能时,这种类型的继承非常有用.接口继承:表示一个类型只继承了函数的签

2015-06-21 14:28:33 717

原创 C#高级编程二十一天----扩展方法

C#中的扩展方法有许多扩展类的方式.如果有类的源代码,继承就是给类添加功能的好方法.但是如果没有源代码,怎么办?吃屎可以使用扩展方法,它允许改变一个类,但不需要该类的源代码.扩展方法是静态方法,它是类的一部分,但实际上没有放在类的源代码中.例如我有一个Money类,不知道源代码,需要一个AddToAmount(decimal amountToAdd).我们可以这么做:namespace

2015-06-21 14:07:25 688

原创 C#高级编程十七天----Object类

Object类它是.NET Framework 中所有类的最终基类;它是类型层次结构的根。也就是说所有的类都拥有object类的方法,并能重写,调用.object的构造函数:public Object().直接使用new object()可以用来创建对象;如果非Object类型,则在该类型的构造函数被调用时,该函数自动被调用.object类中的方法:ToString()方法:快

2015-06-21 13:50:07 755

原创 C#高级编程二十天----静态类

如果类只包含静态的方法和属性,该类就是静态的.静态类在功能上与使用私有静态构造函数创建的类相同.不能创建静态类的实例.使用关键字static关键字,编译器可以检查用户是否不经意间给类添加了实例成员.如果是,就生成一个编译错误.这可以确保不创建静态类的实例.语法:static class StatucTest{public static void SayHello(){}}

2015-06-21 11:21:08 1134

原创 C#高级编程十九天----部分类

部分类C#中使用关键字partial把类,结构或结构放在多个文件中.一般情况下,一个类全部驻留在单个文件中.但有时候,多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的某部分,所以把类放在多个文件中是有益的.用法: 把partial关键字放在class,struct或interface关键字的前面.在下面的例子中,TheBigClass类驻留在两个不同的额源文件BigCl

2015-06-21 10:54:51 782

原创 C#高级编程十八天----C#中的结构

C#中的结构假设有一个类:class Dimensions{public double Length;public double Width;}定义了一个类,它只存储某一项的长度和宽度.嘉定编写一个布置家居的程序,让人们试着在计算机上重新布置家具,并存储每件家具的维度.使字段变为共有字段,就会违背变成规则,但我们实际上并不需要类的全部功能.现在只有两个数字,把他们当做一

2015-06-21 10:54:17 790

原创 shell学习二十一天----重新格式化段落

重新格式化段落大部分功能强大的文本编辑器都提供重新格式化段落的命令;供用户切分段落,使文本行数不要超出我们看到的屏幕范围.这样我们就引入了fmt命令,虽然一些fmt的实现有较多的选项可用,但其实只用:-s仅切割较长的行,但不会将短行结合成较长的行,而-w n则设置输出行宽度为n个字符(默认通常是75个).fmt命令的语法:fmt [option] [file-list]fmt通过将

2015-06-20 13:05:33 702

原创 shell学习二十天----sort的其他内容以及uniq命令

sort的其他内容以及uniq命令在排序算法里有个重要的问题:是否稳定?这个问题指的是:相同的记录输入顺序是否在输出时也可保持原状?当你以多键值为记录进行排序,或是以管道处理时,排序稳定性就非常重要了.我们先来验证一下.sort -t_ -k1,1 -k2,2 > one_two> one_two_three> one_two_four> one_two_five>EO

2015-06-20 12:24:49 1064

原创 shell学习十九天----文本块排序

文本块排序文本快排序出现的原因:有时,你会需要将多行记录组合而成的数据排序.地址清单就是一个很好的例子,为了方便阅读,地址记录经常会切断,以一个或数个空行批次隔开,像这种数据,没有一定的排序键值位置可供-k选项使用,所以就引入了文本快排序.案例:我有一个文件 adress.txt,内容为:J LuoSoutheast UniversityNanjing,China 

2015-06-19 22:29:18 1028

原创 shell学习十八天----文本排序

排序文本行的排序,使用的命令sort,该命令的语法是: sort [option] [files...].sort将文件/文本的每一行作为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出。入门案例:有一个文件temp.txt,内容为:aaa:10:1.1ccc:30:3.3ddd:40:4.4bbb:20:2.2eee:50:5.5eee:

2015-06-19 21:08:49 848

原创 shell学习十七天----awk命令

使用awk重新编排字段awk非常擅长处理结构化数据和生成表单.和sed和grep很相似.由于awk具备各种及哦啊本语言的特点,所以可以把它看做是一种脚本语言.先来看个案例,只查看/etc/passwd/目录下的用户名和组名awk -F: ‘{print $1,$5}’ /etc/passwd意思是:使用:来分割这一行,把这一行的第一和第五个字段打印出来.调用awk:第一种方

2015-06-19 17:54:29 1183

原创 C#高级编程十六天----匿名类型

匿名类型var和new关键字一起使用,可以创建匿名类型.匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。 类型名由编译器生成,并且不能在源代码级使用。 每个属性的类型由编译器推断public class BookAsGood    {        // 定义一组私有成员变量        private string m_n

2015-06-16 09:52:13 698

原创 shell学习十六天----join练习

join练习两文件如下:t1.txt(tab隔开每一列)学号 姓名001 xiaoming002 zhangsant2.txt科目号 学号 分数0001   001 900002   001 800001   002 900002   002 100合并为:0001 001 xiaoming 900002 001 xiaoming 80000

2015-06-16 09:28:42 1031

原创 shell学习十五天----join连接字段

使用join连接字段join命令将多个文件结合起来,每个人建立的每条记录,都共享一个键值,键值指的是记录中的珠子段,通常会是用户名称,个人形式,员工编号之类的数据.语法:join [options...] file1 file2主要选项-1 field1-2 field2标明要结合的字段. -1 field指的是从file1取出field1,而-2field2指的则为从

2015-06-16 09:27:39 1622

原创 C#高级编程十五天----只读字段

只读字段当字段声明中含有 readonly 修饰符时,该声明所引入的字段为只读字段。给只读字段的直接赋值只能作为声明的组成部分出现,或在同一类中的实例构造函数或静态构造函数中出现。(在这些上下文中,只读字段可以被多次赋值。)准确地说,只在下列上下文中允许对 readonly 字段进行直接赋值:在用于引入该字段的变量声明符中(通过添加一个变量初始值设定项)。对于实例字段,在包含字段声明的

2015-06-15 20:57:26 880

原创 C#高级编程十四天----构造函数

构造函数所谓的构造函数就是和类名重名的且没有返回值的方法.class Person{public Person()//构造函数{}}一般情况下,如果没有提供构造函数,编译器会在后台创建一个默认的无参数的构造函数.这是一个非常基本的构造函数,他只能吧所有的成员字段初始化为标准的默认值(例如,引用类型为空引用,数值数据类型为0,bool为false).构造函数可以重

2015-06-15 11:13:23 739 1

原创 C#高级编程十三天----方法的重载

C#支持方法的重载---方法的几个版本有不同的签名即可(即,方法名相同,但是参数个数和/或类型不同).为了冲在方法,只需要声明同名单参数个数或类型不同的方法即可.注意:两个方法不能仅在返回类型上有区别.两个方法不能仅根据声明为ref还是out来区分. 属性的概念是:以个方法货一堆属性,在客户端代码看来,他们是一个字段.属性就是用来对字段进行赋值或取值的.例如class Pe

2015-06-15 11:07:47 884

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除