自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 c# multi thread programming ,c# 多线程编程

在这段代码中,可以看出,当主线程在执行一些耗时的代码的时候。子线程的工作仍在同时进行。这样的并发同时运行两段代码,与单线程执行完一段代码再执行一段代码相比,就节约了很多时间。在主线程得到了子线程运行函数的结果以后,再进行利用,给它加上一个数。演示了主线程如何得到子线程的运行结果并利用。下面我用单线程的模式运行上面的代码,显然耗时得多。

2016-11-29 23:42:49 3469

原创 c#,一个类可以同时继承自一个普通类和一个接口

一个类,可以继承自一个普通类,继承它的成员变量和方法;也可同时继承自 一个接口,继承接口的方法并完成定义。有一个神奇的魔法:同一种对象,都是IAct对象,调用同一种方法Act() 。但是执行的情况却完全不一样。要注意的是,一个接口类对象,只能执行接口里的方法,即使返给它的是子类的对象。只要它的type是接口类,那么,它就只能执行接口里的方法。

2016-11-25 23:03:16 10933

原创 关于thread一个没搞好的例子

using System;using System.Threading;namespace Demo{class F{ static string Answer() { Console.WriteLine("continue counting?y/n"); string s; s = Console.ReadLine(); return s; } publi

2016-11-23 08:32:00 568

原创 用FileStream复制一个任意文件

FileStream,顾名思义,文件流。流,是字节流。我的理解是,硬盘上存在一个字节流,内存里也有一个字节流,它们是对应的。程序运行时,我们只能对内存里的字节流直接操作,在它被关闭的时候,它的内容自动写入硬盘上的相应字节流。复制一个文件的基本思路是:逐一读取原文件流的字节,逐一写入新文件流中。分别用到文件流的ReadByte()和WriteByte()方法。

2016-11-23 05:52:07 2880

原创 c# 学习笔记之九 事件(event)的使用,一个简单例子揭示机理

什么是事件?我们可否看做是一个或者若干个动作?是可以的,比如柚子表白事件,包含几个动作:1.摆柚子2.暖场舞蹈3.拿话筒表白。一个事件包含几个动作,而每个动作都是一个函数,因为在C#中,函数就是做(),因此一个事件由几个函数组成。这么多函数,是用函数代表表示的。那么,什么是函数代表呢?可以这样认为,函数代表就是函数名。你说,函数的代表是不是函数名呢?当然是了。

2016-11-22 21:10:12 3507

原创 c# base关键字的用法

这个base用法,是在定义子类的时候,如果子类必须先存在基类的成员变量,那么就用base把基类实例化。子类继承基类的成员变量以完成后续操作。base还可以用于在一个抽象类的子类里面引用抽象类的方法。这是唯一的抽象类的方法可以在类外引用。因为它既不能实例化,方法 又不是static的。事实上,在继承类中用base方法引用基类的方法。是唯一的非static方法在类外被引用。目前所学是这样。如果子类含有比基类更多的参数。参数也是在创建子类对象的构造器中传递的,再通过base方法,将参数传递给父类构造器。父类对

2016-11-21 18:53:41 2976

原创 c# protected 的用法

protected 是保证继承传递的。以它为标识的成员变量在其所在的类是可以使用的。然后,就是,在继承其所在的类的类中可以使用,可以作为继承类的一个成员,作为继承类对象的成员变量也是可以使用的。就这两种情况,其他,在其他类中是绝对不允许用的。这样既保证了隐私性,要保证了继承传递性。

2016-11-21 18:39:11 2920

原创 c# 方法的继承

如果基类一个方法,子类再定义一个同名的方法。则基类的方法被覆盖。这个很好理解。在实例化的时候。子类的对象当然会继承基类定义的方法。这个时候,子类的对象已经 有了这个方法。此时,再对子类定义一个同名方法,那么就覆写了基类的这个方法。这个规则是默认这样的。

2016-11-21 09:35:04 2107

原创 c#学习笔记之十四,什么是method overloading?

什么是method?函数也.overloading,是过载的意思。为什么会过载呢?因为一个函数,本来后面拖着两个参数的,现在拖着三个参数了,那不是过载是什么?为什么同一个函数,后面可以跟两个参数,也可以给三个甚至是更多个参数呢?因为,C#是一个强类型语言。而一个函数的类型的,是有返回值和参数情况决定的,参数情况不一样,那么函数就是不同的。这一点可以参考函数代表(delegate)的声明格式。

2016-11-21 05:49:02 1628

原创 c# 学习笔记之十三 property之我见

property是c#中的一个名词。与其认为是一个专有语法,还不如认为是一系列语法的组合。property专属的关键字就只有value。其他的性质实现都是用其他的方法的组合。property通过对一系列方法的灵活组合应用,能够间接地对私有的成员变量进行赋值操作和得到值。因为是间接地,私有变量的隐私性也是得到了保护。在下面这个例子中定义一个Teacher类。老师的性别是隐私的,名头也是隐私的。但是,可以定义一个property,用set和get方法间接地外部操作。property还有一个用法,比较接近pro

2016-11-21 05:01:44 1439

原创 终于掌握了最基本的socket通信在.net框架下用c#语言

哈哈,努力了有10天吧。从开始学C#的语法,再学计算机网络的基本原理,然后去看别人c# socket 编程的例子。理解了,自己能写出了,完全是自己写出的。还是很有感觉的。

2016-11-21 00:02:52 4672

原创 c# delegate应用体现了程序设计的分层思想

using System;namespace DataAndOperationUseDelegate{delegate int handler (int x);class F { public static int Square(int x) { return x*x; } public static int Double(int x) { r

2016-11-19 03:37:10 653

原创 c# 用 FileStream类简单实现向一个文本里写字符串

FileStream——文件流是指将一个文件放在内存里。放到内存里面之后,就可以读和写。我们今天只探讨写,而且是一般情况,往文件的末尾写东西。这里需要一个流写工具——StreamWriter.将文件流对象传递给流写工具,流写工具就知道该在哪里写东西了。写完之后,清洗缓冲区,那么内存里的文件流就会写到磁盘里。下面是代码:sing System;using System.IO;/

2016-11-19 00:10:13 3599

原创 c# 类的构造函数的默认定义和个性化定义

初学者可能会有一个疑问。因为类的定义格式和类的建造格式不一样。后来搞懂了。定义了一个类,则有一个默认的与类名同名的构造函数,它建造类的对象的成员,然后返回这个对象。我们在建造的时候,调用的就是这么一个函数。当然,也可以个性化定义这个构造函数。

2016-11-18 16:12:37 2436

原创 c# collections之哈希表Hashtable的理解

对于加入哈希表的方法,Hashtable.add(key,value),我原本是不理解的。因为,哈希表的存储元素的方法,是将元素按某种规则解析后,得出它应该所处的地址。也就是说,只需要欲存的元素,就够了。根本不需要一个关键值。想了想,我明白了,这个关键值,是绑定在存储元素的位置标识上的。得出位置,并将元素存入该位置后,将位置与关键值绑定。这个关键值就代表这个位置。查询时,根据关键值到位置,就能得到

2016-11-16 04:08:13 411

原创 c# using 的意义

在几乎每一个C#的应用中。总是在开头有一个语句:using System; using,相当于c的#include "stdlib.h"中的#include,也相当于python的 import  。using 后面的namespace,相当于是 一个大类,一个库。包含或者说导入当前的程序中,程序体可以调用。

2016-11-16 03:36:01 799

原创 关于TCP同步通信的理解

同步通信就是,服务器一次只能响应一个客户端连接。一旦与一个客户端连接建立,那么其他的连接就会被挂起,即阻塞。难道listen()方法的参数就是这个挂起的连接数?当 当前的连接释放以后,服务器端socket才可以再和其他客户端建立连接。

2016-11-15 23:03:43 1239

原创 c# collections linkedlist 链表的遍历

其实,一般来讲,遍历链表,就是要遍历链表的所有的节点,同时打印节点的值。但是,用foreach方法遍历链表的时候,遍历的直接是节点的值,而不是节点。这其实是c#里面做的不顺人思路的一面。语言毕竟是人开发的,只要是人,就会有各种的缺陷,会犯错误。虽然C#的开发者,我们认为他不是一般的智者。但是也没必要完全地盲目崇拜他,尽信他。以下面的代码块为示例:/* * Created by Sharp

2016-11-15 21:40:11 7904

原创 c# 声明一个对象意味着什么

声明一个对象,其实声明的是一个指向对象的指针,我称之为对象指针,在C#中,就是对象引用——object reference.声明了一个对象,只要有一个对象给它就可以了。没必要非是新建的。返回的也行。但是这个指针是模糊的,代表了那个对象。新建一个对象,就是在内存中实在地创建了一个对象。将这个新建的对象给声明的对象,其实是,将新建对象的指针给对象的指针。当然,只要有一个对象存在就行

2016-11-15 20:22:13 1900

原创 c# generic的用法 class <T>

如果在一个类的声明中,想定义一个数组成员变量。数组的类型设计是可变,但是对数组的操作,基本是不变的。那么可以在类名后面用/* * Created by SharpDevelop. * User: Administrator * Date: 2016/11/15 * Time: 5:01 * * To change this template use Tools | Options

2016-11-15 05:14:52 2266

原创 c# 面向对象的语言

面向对象语言的学习。比如C#。想象现实世界存在的对象。想在现实世界有什么情形。那么在oop语言中如何去实现。从语法的学习对应到实际,也可以,从实际对应到对语法的要求。

2016-11-15 04:23:49 740

原创 c#学习笔记之十二 使用interface和使用virtual-new的区别

interface看构造器(子类)。virtual-new 看的是类别。

2016-11-15 04:22:45 650

原创 c#学习笔记之十 socket编程的listen()方法参数的理解,即backlog

首先,强烈推荐一位cnblogs的博主——sunev。这是他的博客链接我看了国内外很多资料,都对c# socket编程不甚了解。但是,看了他的博客后,有醍醐灌顶之感。他的博文:基于c#的socket编程的TCP同步实现是我看过的最好的TCP socket入门文章。他首先讲了服务器端的代码。他的代码前面都好理解。但是到了socket.listen(10)这里,我有一个疑问,10代表什么?查阅

2016-11-12 13:31:50 15228 5

原创 c#学习笔记之九 事件(event)的使用,一个简单的例子揭示其设计理念

什么是事件?事件就是一系列的动作。比如,柚子表白事件,就有好几个动作:1.摆柚子2.暖场舞蹈3.拿话筒表白。参考这个链接:柚子表白。理解事件是一系列动作,对理解事件的使用很关键。好了,事件是由一系列动作组成。那么动作是什么呢?动作就是函数,因为函数就是做什么,一个函数就是一个动作,反之亦然。因此,事件是由一系列函数组成的。那么,函数有大有小,把一系列的函数实体加入到事件中,是不明智的。所以加入的是函数代表。

2016-11-09 18:40:51 4536

原创 c#学习笔记之八 函数的代表delegate的用法:c# 求 三角函数 指数函数 积分

在实际的开发中,要用到很多的函数。而针对这些函数的一些共性的操作,也可以形成一个函数。因为是共性的操作,所以不需要具体的函数,而只要一个函数的代表就可以了。比如,求积分操作, 它的方法对所有函数都是适用的。熟悉C指针的都知道,FunctionDelegate对象包含的应该是函数的指针。所以在生成函数代表对象的时候,参数不是定义时括号里面的参数,而是函数的名字。这样就把函数的指针传递给了fd对象。这是很别扭的地方,新建类的时候括号里的参数竟然和定义时括号里的参数不一致。希望C#在以后可以改进。但是,如果你知道

2016-11-08 10:42:54 1223

原创 c#学习笔记之七 如何用FileStream对象读取一个文本

为什么要有FileStream呢?因为它的使用更广?它是个什么对象呢?可以看做是一个将磁盘上的文件流传递到内存的字节数组的机制,英文称为管道——pipeline.我把它看做是一个杠杆(lever), 将磁盘上的文件流撬动到内存中。读的思路是:建立一个FileSteam对象以后,用它的Read方法,把文件流逐字节读到一个字节数组中。得到的字节数组,只是比特按字节的长度排放。每个字节到底是不是

2016-11-07 19:39:59 1949

原创 C#学习笔记之六 类定义中static关键字的用法暨C#中静态变量的意义与使用

在定义类中的一个成员变量的时候,如果使用了static 关键字。那么这个类就只会 有这一个变量,称它是静态变量,它是属于这个类的,是类的专有的静态变量,而不是属于类的实例(对象)的。那么,属于这个类的静态变量,与该类之下对象的关系是什么呢?很容易想到,作为类专有的静态变量,应该是被类的所有对象的方法所共用的。

2016-11-06 21:47:44 5004 1

原创 c#学习笔记之五 C与C#在几种主要数据结构在上区别 数组和枚举

C和C#在设计思想上的 区别。c是扁平化的,什么东西都放在那儿可以直接用。而C#是面向对象的,所有的东西都是归成类的。我喜欢扁平化。我 还是超喜欢C语言,但是现在要在.NET上编程,只有学C#了。

2016-11-06 15:27:32 1192

原创 C#学习笔记之四 C#中数组的创建方法

在初识C#的时候,一度以为,在Main()函数中,C#的关于数学运算的语法和C一模一样。但是后续学习中,遇见C#中数组的初始化,发现这是两者的最大的不同。作为一个完全的面向对象的语言,C#中,一切都是类。数组也是一个类。创建一个数组就是新建了数组类的一个实例。因此它的创建方法同类的实例的新建。

2016-11-05 17:36:48 11972

原创 C#中如何直接引用类的一个函数?

将函数声明成static类型就可以了。当然,前面要加上public声明可见性,否则默认是private,就不能被其他类中的函数使用了。例如,在类中先将函数声明(该函数是一个返回值为int的函数):class Caculate{public static int Sqrt(int a){...}                        }在另一个类中直接引用该类下的函数,不用实

2016-11-05 17:05:21 13591 1

原创 什么是C#的解决方案?

c#的解决方案(solution)就是解决一个问题的一揽子计划。它等于一个application(应用);它等于一个namespace;它等于一个assembly;它囊括了若干类。

2016-11-05 16:17:43 3197

原创 C# private 声明符的疑惑 是多余的吗

如果在成员变量前面加了public,那么就可以被外部使用。没有加,就是外部不可见的。那么还要一个private声明符,是不是多余的呢?

2016-11-05 15:56:43 1328 1

原创 C#学习笔记三 类的成员变量的可见性需要个性化声明

本来想,按照逻辑。如果在class前面加一个public。那么整个class都应该是public的。但是,目前的C#版本不是这样的。在需要外部使用的成员变量前面需要逐一加public声明。如果没有加,外部是无法使用的。

2016-11-05 15:17:21 740

原创 C#学习笔记二 在类下不能对变量赋值,赋值必须发生在函数中

在如下代码块中,我对类里的变量进行赋值,是错误的。using System;namespace solutionname{ class cock{ float length; length = 16;//error! } class application{ public static void Main() { Console.Read(

2016-11-05 13:43:04 2838

原创 C#学习笔记一 设计思想的理解

你编写任何一群代码。都是为了解决 一个问题。因此C#将解决方案(solution)放在首位。所谓的namespace就是解决方案的名字,这个解决方案囊括了所有的程序和类。因此,namespace的大括号要把所有的类和函数都括起来。在C#中,是没有单个函数的。所有的函数是一个本身可以执行的函数,也是所在类的一个方法。即使是Main()函数,也要在一个类里面。

2016-11-05 13:35:22 1274

原创 如何使Python中父对象有的属性子对象都有?

解决这个问题,Python2.7的思路是在子类marine初始化的时候,调用父类soldier的初始化方法将子对象本身再初始化一遍就可以了。

2016-11-03 21:05:00 3534

原创 pyInstaller 将python文件.py转换为windows可执行文件.exe的标准化方法

首先,安装有python.第二,安装pywin32第三,安装有setuptools,64位windows机器,是下载ez_setup.py ,拷贝到python.exe所在文件夹。用python运行(首先在系统环境变量中要加入python.exe所在路径,这是基本常识)。第四,安装pyInstaller 。解压以后,在setup.py所在目录中,运行批处理命令:python set

2016-11-01 18:33:00 765

空空如也

空空如也

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

TA关注的人

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