C#
文章平均质量分 71
fanet
这个作者很懒,什么都没留下…
展开
-
对文件压缩解压操作
using System;using Microsoft.Win32;using System.Windows.Forms;using System.Resources;using System.Reflection;using System.Diagnostics;using System.IO;using System.Threading;na原创 2008-09-04 16:49:00 · 640 阅读 · 0 评论 -
数据结构---队列(C#)
namespace DateStructrue{ public interface IQueue : IDateStructrue { void EnQueue(T item); T DeQueue(); T GetFront(); //T this[int index] { get; set原创 2010-04-09 14:04:00 · 765 阅读 · 0 评论 -
C# struct代替c++ 的union
在C/C++中,struct类型中的成员的一旦声明,则实例中成员在内存中的布局(Layout)顺序就定下来了,即与成员声明的顺序相同,并且在默认情况下总是按照结构中占用空间最大的成员进行对齐(Align);当然我们也可以通过设置或编码来设置内存对齐的方式. 然而在.net托管环境中,CLR提供了更自由的方式来控制struct中Layout:我们可以在定义stru转载 2010-04-22 16:45:00 · 5594 阅读 · 2 评论 -
[Serializable]在C#中的作用,.NET 中的对象序列化
简介序列化是指将对象实例的状态存储到存储媒体的过程。在此过程中,先将对象的公共字段和私有字段以及类的名称(包括类所在的程序集)转换为字节流,然后再把字节流写入数据流。在随后对对象进行反序列化时,将创建出与原对象完全相同的副本。在面向对象的环境中实现序列化机制时,必须在易用性和灵活性之间进行一些权衡。只要您对此过程有足够的控制能力,就可以使该过程在很大程度上自动进行。例如,简单的二进制序列化原创 2010-05-13 10:35:00 · 624 阅读 · 0 评论 -
数据结构---广义表 逆置(C#)
在C# 中, 广义表结构如: public enum NodeType { Atom, List }public class GLNode{ public NodeType Type { get; set; } public GLNode Next { get; set; } public object Item { g原创 2010-05-21 13:28:00 · 3394 阅读 · 1 评论 -
C# sealed 修饰符
<br /> 1. sealed 修饰类<br /> 当对一个类应用 sealed 修饰符时,此修饰符会阻止其他类从该类继承。<br /> 在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承<br /> public class B { protected override void M() { Console.WriteLine("B.M()"); } } public原创 2010-07-22 19:04:00 · 930 阅读 · 0 评论 -
C# MessageBox.Show 用法
简介摘要:MessageBox.Show (String) 显示具有指定文本的消息框。 由 .NET Compact Framework 支持。 MessageBox.Show (IWin32Window, String) 在指定对象的前面显示具有指定文本的消息框。 MessageBox.Show (String) 显示具有指定文本的消息框。 由 .NET Compact Framework 支持。 MessageBox.Show (原创 2010-09-17 20:58:00 · 43304 阅读 · 15 评论 -
datagridview 去除 默认选中第一行
<br />在绑定datagridview 之后添加一行:<br />this.datagridview1.ClearSelection();原创 2010-10-28 15:02:00 · 4289 阅读 · 0 评论 -
允许一个程序在widnow上运行
如果 只允许一个应用程序在window上运行, 我们要以下步骤1. 在window上查找是否有 这个应用程序的实例。2. 如果没有话,就实例一个应用程序。 3. 如果有的话, 就激活此应用程序。在这里我用了两个 window API 函数。 bool ShowWindowAsync(IntPtr hwnd, int cmdShow); bool SetForegroundWindow(IntPtr hwnd); ShowWindowAsync与ShowWindow相似,只是这时的S原创 2011-01-29 13:31:00 · 1060 阅读 · 0 评论 -
C#.netSOCKET通讯系列(socket编程原理)
<br />套接字编程基本概念 <br />钥纪纪始使用套接字编程之前,首先必须建立以下概念。 <br /><br />2.1 网间进程通信 <br />进程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD中的管道(pipe)、命名管道(named pipe)和软中断信号(signal),UNIX system V的消息(message)、共享存储区(shared memory)转载 2011-02-06 16:06:00 · 5270 阅读 · 0 评论 -
C#.NET 消息机制
一、消息概述 众人周知,window系统是一个消息驱动的系统, windows操作系统本身有自己的消息队列,消息循环,它捕捉键盘,鼠标的动作生成消息,并将这个消息传给应用程序的消息队列。 余下的工作有应用程序处理消息, windows 消息机制在这儿就不再讲述,我们重点讲述应用程序的消息机制。 大家只要明白消息是由操作系统传递给应用程序的。 一副图更能详细说明:应用程序的执行是通过消息驱动的。消息是整个应用程序的工作引擎,我们需要理解掌握我们使用的编程语言是如何封装消息的原理。1 什么是消息(Me原创 2011-02-11 11:02:00 · 18107 阅读 · 5 评论 -
SQLite Helper Library For C#
<br />SQLite这个精巧的小数据库,无需安装软件,只需要一个System.Data.SQLite.DLL文件即可操作SQLite数据库。SQLite是一个开源数据库,现在已变得越来越流行,它的体积很小,被广泛应用于各种不同类型的应用中。SQLite已经是世界上布署得最广泛的SQL数据库引擎,被用在无以计数的桌面电脑应用中,还有消费电子设备中,如移动电话、掌上电脑和MP3播放器等。SQLite的源码就放在公有领域(即WikiPedia的public domain)中。<br /> <br /> <br原创 2011-04-04 23:55:00 · 1652 阅读 · 0 评论 -
存储过程中使用RETURN语句返回数值,.Net里用ExecuteScalar方法结果将会导致一个未引用到具体对象的异常
如果在存储过程中使用RETURN语句返回数值,.Net里用ExecuteScalar方法结果将会导致一个未引用到具体对象的异常,因为ExecuteScalar方法执行查询,并返回查询所返回的结果集中第一行的第一列。所有其他的列和行将被忽略。但是Return并不返回数据集,所以造成异常。 解决方法:1、对存储过程动手,在存储过程中改由Select语句代替reutrn语句返回即可解决此问题原创 2011-06-28 13:15:00 · 2484 阅读 · 0 评论 -
Learning C# Attribute
在C#中,有一个小的预定义特性集合。在学习如何建立我们自己的定制特性(custom attributes)之前,我们先来看看在我们的代码中如何使用预定义特性。 using System; public class AnyClass { [O翻译 2011-08-21 08:15:06 · 695 阅读 · 0 评论 -
数据结构---二叉树(C#)
public interface IBinTree : IDateStructrue { IList PreOrder(); IList InOrder(); IList PostOrder(); IList LevelOrder(); void PreCreator(T[] items原创 2010-04-15 18:41:00 · 1020 阅读 · 0 评论 -
C# 读写CSV文件到DataTable
public interface ICSVWriterReader {//define a interface string CSVFile { get; set; } //csv file DataTable Read();//read csv to DataTable. bool Write(DataTable dt);原创 2010-04-01 15:38:00 · 6273 阅读 · 2 评论 -
#pragma warning
每次编译从网上下载的开源代码,我都会对着 Error List 窗口里密密麻麻的黄色 Warning 信息发呆。可能我有那么点 "洁癖",因为有很多警告信息实在没有必要弄出来干扰我们的视线。 利用 C# 预处理指令(Preprocessor Directives),我们可以屏蔽掉那些我们能确认的警告信息。比如: try{ // do something..原创 2009-11-24 14:35:00 · 1211 阅读 · 0 评论 -
C#中Dispose和Close的区别
当我们开发C#代码的时候,经常碰到一个问题,有些class提供Close(),有些class提供Dispose(),那么Dispose和Close到底有什么区别?首先,Dispose和Close基本上应该是一样的。Close是为了那些不熟悉Dispose的开发者设计的。因为基本上所有的developer都知道Close是干吗的(特别是对于那些有C++背景的developer)。但是当我们写原创 2008-10-25 22:45:00 · 606 阅读 · 0 评论 -
C#中构造函数和析构函数的用法
构造函数与析构函数是一个类中看似较为简单的两类函数,但在实际运用过程中总会出现一些意想不到的运行错误。本文将较系统的介绍构造函数与析构函数的原理及在C#中的运用,以及在使用过程中需要注意的若干事项。 一.构造函数与析构函数的原理 作为比C更先进的语言,C#提供了更好的机制来增强程序的安全性。C#编译器具有严格的类型安全检查功能,它几乎能找出程序中所有的语法问题,这的确帮了程序员原创 2008-10-25 22:45:00 · 677 阅读 · 0 评论 -
对委托内部机制的研究
之前我对委托的认识,只是停留在简单的定义委托,实例化委托,绑定方法等基本操作。 随着现在对.net的深入学习(尤其在了解.net中的反射机制后),慢慢的对委托的内部运行机制也有了一定的了 解。把它写在我的博客上,一方面能与同行交流,同时也当做是对自己掌握的知识的一种归纳总结。 切入正题。 首先要明白的是,Delegate实质是一个类(很废话,不要骂我)原创 2008-11-05 18:45:00 · 539 阅读 · 0 评论 -
Com对象
在.Net 中枚举COM对象的方法和属性名称在.Net 中枚举COM对象的方法和属性名称vv 在.net 中枚举COM对象的方法和属性名称Author:Zee恩,以前满世界问过这个问题,没有人理偶的说,还是自己动手搞定比较好。一般来说,一个COM对象在提供的时候,通常还会提供一个类型库,在其中定义了COM对象的所有方法名称、参数名称、属性名称等等信息。我们要做的就是从类型库中取出这原创 2008-11-05 18:43:00 · 1040 阅读 · 0 评论 -
C#的事件处理机制应用
如果要在C#中定义一个事件,首先你要创造一个delegate(委派),用他来定义一个你所想使用事件的标签,然后你才能使用event关键字,在这个委派的基础上定义一个事件.两点需要注意的是:第一,首先你要创造一个委派,第二,根据你所创造的委派来定义一个事件,这才是一个完整的事件定义.假设我们把书中的Product类进行增强.加入了一个NameChanged事件,此事件只有当Name通过属性渠原创 2008-11-05 18:44:00 · 536 阅读 · 0 评论 -
多一个接口的优点
有时, 我们看到一个功能模块 实现了两个接口。 如图: Class1 继承了 interface2 接口 , interface2 接口又继承了 interface1而 interface2 没有 任何方法,属性 …,只是仅仅继承而已。 优点:为以后接口扩展提供便利。 如 : 你在引用这个Dl原创 2009-01-12 17:35:00 · 990 阅读 · 0 评论 -
DebuggerStepThrough特性节省Debug时间
当你在进行dubug工作时,一个令人烦恼的事是你不得不进入一些只有一些代码的方法(或是属性)的内容。假设你有下面的代码: public string Word{get ;set ;} 并且你在调用一个方法时用到了这个属性: DoSomething(obj.Word); 当你debug这行代码时,按F11进入方法,这时,你将不得不先进入属性原创 2008-11-28 17:49:00 · 678 阅读 · 0 评论 -
线性方程解的程序
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using System.Text; namespace WindowsFormsApplication1{ public class LinearEquation原创 2009-03-20 17:51:00 · 597 阅读 · 0 评论 -
非泛型集合使用Linq
有很多老项目的集合继承Ilist 接口 的非泛型集合, 这也导致我们无法直接使有Linq , MS 考虑很周全,为了能够让这些集合使用Linq , 需要 OfType() 或 Cast来帮助。 OfType() 和 Cast 都可以让非泛型使用Linq。 他们到底有什么区别泥,简单的说, OfType 在碰到不兼容的对象时会忽略它,而Cast会抛出异常。这原创 2009-08-04 13:21:00 · 832 阅读 · 0 评论 -
自定义集合具有排序功能。像datatable
当大家自定义对象时,无论你返回Ilist 还是 自定义集合, 当绑定到datagridview 或者其他对象。 都无法实现标题排序。(即:click列头,自动排序), 我们需要怎么做才能排序呢, 需要继承什么接口呢。答案是继承 IBindingList 接口。 public class model { public int Id { get; set; } publ原创 2009-08-04 13:35:00 · 935 阅读 · 0 评论 -
IsDigit 与IsNumber 的区别。
MS 实现的 code public static bool IsDigit(char c){ if (!IsLatin1(c)) { return (CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.DecimalD原创 2009-08-07 19:59:00 · 4744 阅读 · 0 评论 -
自定义检索列
初始化一列如果能让程序来检索, 需要设置列SortMode 为 DataGridViewColumnSortMode.Programmatic; DataGridViewTextBoxColumn txtCol = new DataGridViewTextBoxColumn(); txtCol.Name = "filePending";原创 2009-09-16 10:47:00 · 670 阅读 · 0 评论 -
C# 3.0 New新用法
最早见识匿名类型是在 Java 语言中,这种纯技巧性的编码方式为局部数据交换带来很大的便利。 var user = new { Name = "Tom", Age = 13 };Console.WriteLine(user.Name);C# 3.0 对 new 关键字做了重新定义,增加对匿名类型的支持。 匿名类型特征: (1) 编码时没有定义类型名称。原创 2009-11-24 14:57:00 · 986 阅读 · 0 评论