自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用C#2.0进行文件压缩和解压

在FCL2.0中增加了System.IO.Compression命名空间, 用以进行文件压缩和解压操作,如下所示:using System;using System.IO;using System.IO.Compression;namespace Skyiv.Helper{    static class Zip    {      public stati

2015-07-31 06:26:58 332

原创 Linux 操作系统下 File.Delete 的表现

在我的上一篇随笔“对 File.Delete 方法的一点看法”中,在 Windows 操作系统上对 File.Delete 方法进行了测试。这次,在 Linux 操作系统上使用 mono 的最新版本 1.2.5 版对 File.Delete 方法进行测试。    下面是我的运行 Linux 操作系统的计算机的基本信息:ben@ibm7k:~/work$ cat /etc/i

2015-07-31 06:25:58 1104

原创 Microsoft .NET Framework 的版本

自2000年6月22日微软向全球宣布自己的.NET战略,到现在已经七年多了。作为.NET战略的基础,Microsoft .NET Framework 也已经发行了多个版本。下面,我们就来看看这些年来微软到底发布了哪些 .NET Framework 版本。(关于 Microsoft .NET Compact Framework 的版本请参阅“黎波”的文章:“如何判断 .NET Compact F

2015-07-31 06:24:08 789

原创 Unicode 二三事

bool Judge(string s1,string s2){  if (string.IsNullOrEmpty(s1) || string.IsNullOrEmpty(s2))return true;  if (s1.Length return true;  var ci = StringComparison.InvariantCultur

2015-07-31 06:22:21 385

原创 浅谈 F# 2.0 的两个运行时

我们知道,F# 2.0 有面向 .NET Framework 2.0 和 .NET Framework 4 的两个运行时。此外,F# 2.0 还有一个面向 Silverlight 的运行时。面向 .NET Framework 2.0 的 F# 2.0 运行时的核心库 (FSharp.Core.dll) 将一些 API 包含在 System 命名空间中,这些 API 与 F# 开发所需的 .

2015-07-31 06:19:31 679

原创 浅谈字符编码

前言我们知道,.NET Framework 在内部将文本(string)存储为 Unicode UTF-16。在 .NET Framework Base Class Library 中,System.Text.Encoding 类及其派生类提供了对字符编码的支持。Encoding 类的静态GetEncodings 方法返回包含所有编码的数组。 源程序代码让我们写个

2015-07-31 06:16:24 1010

原创 Mono源代码学习笔记:Console类(五)

CStreamReader 类 (internal class)下面就是 mcs/class/corlib/System/CStreamReader.cs:001: //002: // System.CStreamReader003: //004: // Authors:005: // Dietmar Maurer (dietmar@ximian.com)006

2015-07-30 08:43:10 456

原创 给 string 增加一个 GetInputStream 扩展方法

有时候,我们需要读取一些数据,而不管这数据来源于磁盘上的数据文件,还是来源于网络上的数据。于是,就有了下面的 StringExtensions.cs: 1 using System; 2 using System.IO; 3 using System.Net; 4 5 namespace Skyiv 6 { 7 public static class StringEx

2015-07-30 08:38:43 566

原创 浅谈 System.Decimal 结构

引言我们知道,Microsoft .NET Framework 中的 System.Decimal 结构(在 C# 语言中等价于 decimal 关键字)用来表示十进制数,范围从 -(296 - 1) 到 296 - 1,并且可以有 28 位小数。这就是说:decimal.MinValue = -79,228,162,514,264,337,593,543,950,335 = -(

2015-07-30 08:34:25 1090

原创 实现System.IComparable接口的一个问题

public sealed class Person : System.IComparable {       internal int age;       public int CompareTo(object rhs) {         if (this == rhs) return 0; // 相同         Person other = (Person)rhs; 

2015-07-29 09:17:31 562

原创 C#解惑46: 令人混淆的构造器案例

谜题46: 令人混淆的构造器案例    本谜题呈现了两个容易令人混淆的构造器。Main方法调用了一个构造器,但是它调用的究竟是哪一个呢?该程序的输出取决于这个问题的答案。那么它会打印什么呢?甚至它是否合法?class Confusing{  Confusing(object o)  {    System.Console.WriteLine("object");  }

2015-07-29 09:15:05 496

原创 C#解惑34: 被计数击倒了

谜题34: 被计数击倒了    这个程序会打印什么呢?    class Count    {      static void Main()      {        const int START = 2000000000;        int count = 0;        for (float f = START; f           cou

2015-07-29 09:13:46 453

原创 浅谈 C# 语言的 using 语句

背景知识外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序。然后,对已经排序的子文件进行归并排序。问题提出假设我们要写一个外部排序程序。现在要讨论的是对已

2015-07-29 09:09:41 671 1

原创 浅谈 .NET 程序的编译时间

我们在编写 .NET 程序时,经常会在该程序的“关于本软件”对话框中给出这个程序的编译时间,如下图所示: 上图中的编译时间是如果得到的呢?其实是在其 C# 源程序中有这么一句:[assembly: AssemblyVersion("1.3.*")]上述语句使用了 System.Reflection.AssemblyVersionAttribute 类,该类用于指

2015-07-29 09:07:27 652 1

原创 ACTIVE OBJECT 模式 C# 版

第13章 COMMAND模式和ACTIVE OBJECT模式  没有人天生就具有命令他人的权利。     ——Denis Diderot(1713-1784,法国哲学家,百科全书编者)   在近几年记述过的所有设计模式中,我认为COMMAND模式是最简单、最优雅的模式之一。但是我们将会看到,这种简单性是带有欺骗性的。COMMAND模式的适用范围是非常宽广的。   如图13.

2015-07-28 07:39:48 403

原创 Unit3D全套坦克大战以及安装软件资料

下载地址:http://feixueteam.net/thread-388-1-1.html

2015-07-28 07:35:40 368

原创 也谈在 .NET 平台上使用 Scala 语言(上)

前几天,老赵发表了两篇文章:在.NET平台上使用Scala语言(上):初尝 和 在.NET平台上使用Scala语言(下):分析。我拜读了以后,对 Scala 语言也感兴趣。于是就开始了尝试。在 Ubuntu 9.10 操作系统上安装 Scala SDK 是非常简单的一件事:ben@ben-m4000t:~$ sudo apt-get install scalaben@be

2015-07-28 07:32:40 706

原创 浅谈 make 工具

在 Linux 环境下编程,make 工具的使用以及编写 Makefile 文件是很重要的。当然,make 工具对在 Windows 环境下编程的程序员也是有用的。Makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些中间文件以及如何创建这些中间文件、如何最后产生我们想要得可执行文件。尽管看起来可能是很复杂的事情,但是为工程编

2015-07-28 07:22:49 1120

原创 从源代码编译 Mono 2.8.2 是否需要低版本的 Mono

前言我在上一篇随笔“在 Ubuntu 10.10 操作系统中安装 Mono 2.8.2”中说过:所以说,从源代码编译高版本的 Mono,需要先安装低版本的 Mono。博客无双大赛的评委老赵在我这篇随笔的评论中说:引用所以说,从源代码编译高版本的 Mono,需要先安装低版本的 Mono。 这说法是不对的,完全可以从一台裸机上安装mono-2.8,编译时自然会先生成个C#编译

2015-07-28 07:17:11 875

原创 Arch Linux 安装 Xerox Phaser 3125N 网络打印机备忘录

配置 Xerox Phaser 3125N 打印机的 IP 地址给 Xerox Phaser 3125N 打印机连接上网络线,并打开电源。按住打印机上 Cancel 键不放,直到打印机打印出 Configuration 页。记下其中的 MAC Address。然后在 Windows 主机上使用 Set IP 工具根据 MAC Address 配置 IP Address。注意,Xer

2015-07-28 07:13:37 838

原创 画函数图形的C#程序,兼论一个病态函数

该程序在屏幕上画出指定的函数的图像,函数的自变量的取值范围由用户指定,程序自动计算该区间内函数的值的取值范围。首先,让我们来看一幅正弦函数: f(x)  =  sin(x) 的图像:  这幅图像中,ClientSize: 529x152 表示该程序画图区宽度为 529 个像素,高度为 152 个像素。该函数自变量 x 的取值范围从 -3.5 到 3.5,函数值 y 的取值范围应该是从 -1

2015-07-27 09:28:11 942

原创 盛大锦书注册到云梯的 C# 程序

我参加了盛大组织的“Bambook程序达人赛”,是通过博客园报名的。目前提交了两件参赛作品。在参赛作品中需要实现“注册到云梯”的功能,如下图所示: 这是一个通用的功能,可以封装为一个类,以便各个参赛的 C# 程序调用。根据盛大官方的 SDK 文档,要注册应用程序到云梯,有两种方法:使用 RegApp.exe。编辑云梯安装目录下的 bbapps.xml

2015-07-27 09:25:09 829

原创 IIS 中 ASP.NET 网站的目录权限

最近在开发一个 ASP.NET 网站项目。该项目在 Visual Studio 2008 的 ASP.NET Development Server 中运行正常。但是将网站发布后,在 Windows XP Professional 的 IIS 5.1 环境中运行时,读取数据正常,但写入数据时,出现以下错误:对路径“D:\Web\xxx\App_Data\xxx.dat”的访问被拒绝。

2015-07-27 09:22:39 859

原创 在 ASP.NET 网页中显示动态生成的图片

概述在上一篇随笔“【算法】从推箱子的解答步骤还原关卡地图”中,我给出一个控制台应用程序,将 LURD 数据转换为 XSB 数据。为了方便使用,我编写了一个 ASP.NET 网页实现从推箱子的解答步骤还原关卡地图:Sokoban: Lurd to Xsb,如下所示:源程序代码首先是 lurd2xsb.aspx 源程序文件:01: @ Page Lan

2015-07-27 09:20:07 1643

原创 MySQL 备忘录

在 openSUSE 12.1 操作系统中安装并配置 MySQL 数据库服务器:$ sudo zypper install mysql-community-server$ sudo vim /etc/my.cnf[mysqld]sql-mode="TRADITIONAL"$ sudo /sbin/chkconfig --add mysql$ sudo /etc/init.d/mysq

2015-07-27 09:15:23 434

原创 使用 C# 开发智能手机软件:推箱子(二十一)

这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第二十一篇。在这篇文章中,介绍 Window/MainForm.Design.cs 源程序文件。这个源程序文件是 MainForm 类的一部分,该类继承自 System.Windows.Forms.Form 类,表示推箱子的主窗体。而本篇文章讲述的是推箱子“设计”的实际工作,如下图所示:我们先看看 MainForm.Desig

2015-07-26 11:28:10 673

原创 使用 C# 开发智能手机软件:推箱子(十七)

这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第十七篇。在这篇文章中,介绍 Window/SelectGroupDlg.cs 源程序文件。这个源程序文件包含 SelectGroupDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“选组”对话框。如下图所示:    下面是 Window/SelectGroupDlg.Desig

2015-07-26 11:25:05 827

原创 使用 C# 开发智能手机软件:推箱子(十二)

这是“使用 C# 开发智能手机软件:推箱子”系列文章的第十二篇。在这篇文章中,介绍 Window/AboutDlg.cs 源程序文件。这个源程序文件包含 AboutDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“关于”对话框。如下图所示:      下面是 Window/AboutDlg.Designer.c

2015-07-26 11:18:29 739

原创 使用 C# 开发智能手机软件:推箱子(七)

这是“使用 C# 开发智能手机软件:推箱子”系列文章的第七篇。在这篇文章中,介绍 Common/Step.cs 源程序文件。 1namespace Skyiv.Ben.PushBox.Common 2{ 3  enum Direction { None, East, South, West, North } // 方向: 无 东 南 西 北 4  public enum A

2015-07-26 11:14:50 696

原创 使用 C# 开发智能手机软件:推箱子(二)

在上篇文章“使用 C# 开发智能手机软件:推箱子(一)”中,我对推箱子程序作了总体介绍。这次,我先介绍 Common/Fcl.cs 源程序文件。 1 using System; 2 using System.IO; 3 using System.Drawing; 4  5 namespace Skyiv.Ben.PushBox.Common 6 { 7   //

2015-07-26 11:11:52 466

原创 挖一挖C#中那些我们不常用的东西之系列(1)——ToDictionary,ToLookup

这个系列我们看看C#中有哪些我们知道,但是又不知道怎么用,又或者懒得去了解的东西,比如这篇我们要介绍的toDictionary和ToLookup。  从图中我们看到有四个ToXXX的方法,其中ToArray和ToList,我想大家用的是非常非常多,但是ToDictionary和ToLookup不见得有多少人用了,但不能否认的是这些方法确实很有用。     不

2015-07-25 09:09:43 789

原创 const,readonly 这些你真的懂吗? 也许会被面试到哦

首先不可否认,这些在面试上会经常被面试官问起,但是你回答的让面试官满意吗?当然如果你知道了这些原理,或许你就不怕了。既然说到了原理,我们还是从MSDN说起。     一:值得推敲的几个地方 1.先来看看msdn上面对const是怎么说的,我们会看到。不能修改,编译时常量这些关键性信息。 Q:  const为什么不能被修改。 A

2015-07-25 09:05:48 368

原创 看看这个常常被初级程序员弄不懂的 “事件”

众所周知在面试中,经常有些崽子面试官会问些“事件和委托”的关系,也许一路走来的程序员大多都会被问到这个,那么对于这个高频的”事件和委托“问题,如何回击呢?首先我从最经典的一套面试题说起,用事件来实现 “猫爪老鼠“,这是一个从网上copy过来的一个例子。 static void Main(string[] args) {

2015-07-25 09:01:40 438

原创 看看Parallel中高度封装的三个方法,Invoke,For和ForEach

说到.net中的并行编程,也许你的第一反应就是Task,确实Task是一个非常灵活的用于并行编程的一个专用类,不可否认越灵活的东西用起来就越复杂,高度封装的东西用起来很简单,但是缺失了灵活性,这篇我们就看看这些好用但灵活性不高的几个并行方法。 一:Invoke  现在电子商务的网站都少不了订单的流程,没有订单的话网站也就没有存活的价值了,往往在订单提交成功后,通常会

2015-07-25 08:58:37 1125

原创 看看C# 6.0中那些语法糖都干了些什么(终结篇)

终于写到终结篇了,整个人像在梦游一样,说完这一篇我得继续写我的js系列啦。 一:带索引的对象初始化器  还是按照江湖老规矩,先扒开看看到底是个什么玩意。1 static void Main(string[] args)2 {3 Dictionarystring, string> dic = new Di

2015-07-25 08:54:04 520 1

原创 从XML文件乱码问题,探寻其背后的原理

在日常开发工作中,我们经常会使用到XML,早已成为了一种标准。它的用途非常的广泛,但这些不是本文所重点讨论的。相信大家在做开始时候经常碰到过“乱码”的问题,这是中国程序员非常头疼的问题。我一直很想深入研究关于“编码”的原理,无奈水平有限,那些枯燥的 理论(二进制,ASCII,Unicode,UTF-8,gb2312,ISO ...光这些就让我看的两眼发黑了),实在看不下去,也很难真正搞懂搞明白

2015-07-24 09:27:14 764

原创 逻辑架构和物理架构

在实际工作中,我们经常听到“架构”和“架构师”这样的名词,并不新鲜,但是总让很多刚入门的人感觉很神秘,甚至是高深莫测。很少有人对“架构”有全面的了解和认识能并说清楚架构是什么,更谈不上掌握了。事实上,也只有极少数人能成为或者被冠以“架构师”这样的title。为此,笔者总结了对架构的一些理解,希望能够补充很多初入门的人在这方面认识上的不足,纠正一些误解。高手和老鸟就直接跳过吧。 架构的分

2015-07-24 09:17:57 919

原创 WPF 基础到企业应用系列2——WPF前世今生

1.开篇前言      很多时候了解一项新技术的历史和趋势往往比这项技术的本身价值还要重要。WPF作为一项新技术(已经三年多了,或者应该叫老技术了),我们都有必要了解它的来龙去脉,尤其是公司的CTO、技术总监、架构师等决策层,因为他们对技术的选型及应用具有决定权。对于开发者来说,了解自己正在从事的这个技术的前世今生,有助于我们更好的认识技术本身的价值,也可以避免我们少走一些弯路(圣殿骑士 

2015-07-22 11:28:40 656

原创 WPF基础到企业应用系列7——深入剖析依赖属性(WPF/Silverlight核心)

一. 摘要  首先圣殿骑士很高兴这个系列能得到大家的关注和支持,这个系列从七月份开始到现在才第七篇,上一篇发布是在8月2日,掐指一算有二十多天没有继续更新了,最主要原因一来是想把它写好,二来是因为最近几个月在筹备“云计算之旅”系列,所以一再推迟了发布进度。之前一直都没有想过要录制视频,主要的原因还是怕自己知识有限,从而误导他人,所以前几次浪曦和51CTO邀请录制视频,我都以工作忙、公司内部

2015-07-22 11:23:54 950

原创 降低方法

概念:本文中的降低方法和前篇的提升方法整好相反,也就是把个别子类使用到的方法从基类移到子类里面去。 正文:如下代码所示,Animal 类中的方法Bark只有在其子类Dog 中使用,所以最好的方案就是把这个方法移到子类Dog 中。namespace LosTechies.DaysOfRefactoring.PushDownMethod.Before{ public ab

2015-07-21 10:07:17 518

空空如也

空空如也

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

TA关注的人

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