Dot Net
alwaysrun
当你站在山顶的时候,你的头上还有星空。
展开
-
C#成员可访问性
根据网上资料整理而成。 一、C#中已声明的可访问性: 1. public:访问不受限制; 2. internal:访问仅限于所属程序集; 3. protected:访问仅限于当前类和其子类; 4. internal protected:访问仅限于当前程序集或其子类(子类可以不属于当前程序集); 5. private:访问仅限于包含该成员的类型。 二、原创 2009-07-23 11:26:00 · 2988 阅读 · 1 评论 -
Keystroke Monitoring
1. IntroductionIn this article, we will consider the methods of hooking keyboarddata in the kernel mode. The described approaches can be used forsolving the tasks of keystroke analysis, blocking转载 2009-10-30 12:05:00 · 1059 阅读 · 0 评论 -
[转载]如何用CSC.exe来编译Visual C#的代码文件
Visual C#是微软公司推出的新一代程序开发语言,Visual C#是微软公司.Net FrameWork框架中的一个重要的组成部分,也是微软公司向程序员极力推荐一个新的程序开发平台。和以往的开发语言相比较,他有更强大功能,更高的稳定性和更高的安全性。也正因为如此,Visual C#正在受到越来越多的编程爱好者的欢迎。 Visual C#的编译器和以往编程语言的原创 2010-04-01 12:13:00 · 826 阅读 · 0 评论 -
RichTextBox中模拟分栏显示RichTextBox中模拟分栏显示
<br />需要显示多个项,每个项都有一个名称和内容组成,想要达到名称以粗体显示,内容以正常方式显示;同时允许内容有多行;名称在左侧显示,内容在右侧显示,如果内容有多行,各行起始处要对齐。<br />为此试了几个控件,最后还是选中了richtextbox。<br />首先要声明粗体BoldFont与普通字体NormalFont;<br />设定richBox的SelectionHangingIndent(第一行与其他行缩进像素数)为需要的大小;然后就可以添加内容了<br />this.richBox.S原创 2010-07-20 17:45:00 · 1877 阅读 · 0 评论 -
C#格式化字符串
<br /> 字符串格式String.Format和WriteLine都遵守同样的格式化规则。格式化的格式如下:<br /> "{ N [, M ][: formatString ]}", arg1, ... argN}<br /> 在这个格式中:<br /> 1) N是从0开始的整数,表示要格式化的参数的个数<br /> 2) M是一个可选的整数,决定了格式化字符串的宽度和对齐方向:表示格式化后的参数所占的宽度,如果M是负数,那么格式化后的值就是左对齐的,如原创 2010-06-12 17:34:00 · 3089 阅读 · 0 评论 -
C#隐藏窗体
<br /> 为了隐藏窗体,可以把windowstate设置为最小化,把showintaskbar设为false。另外可以把各种不需要的东西(如标题栏等)都去掉。还可以把size改为(0,0);这样之后,窗体就不会显示了。<br /> 做了如上设置后,Form Load将无效,所以很多初始化要移到构造函数中去。<br /> 通过上面的设置,窗体是不显示了,但是通过alt+tab还是可以看见的,为此可以重载SetVisibleCore。<br /> protected over原创 2010-06-12 17:35:00 · 2252 阅读 · 0 评论 -
C# 中的委托和事件
--转载张子阳博客引言<br />委托 和 事件在 .Net Framework中的应用非常广泛,然而,较好地理解委托和事件对很多接触C#时间不长的人来说并不容易。它们就像是一道槛儿,过了这个槛的人,觉得真是太容易了,而没有过去的人每次见到委托和事件就觉得心里别(biè)得慌,混身不自在。本文中,我将通过两个范例由浅入深地讲述什么是委托、为什么要使用委托、事件的由来、.Net Framework中的委托和事件、委托和事件对Observer设计模式的意义,对它们的中间代码也做了讨论。将方法作为方法原创 2010-10-09 13:46:00 · 535 阅读 · 0 评论 -
C#中使用事件只启动一个实例
现有一个程序,只能启动一个实例:启动时,如果检测到实例已启动,则激活并显示到最前端;否则启动一个新的实例:为此可以通过事件实现。// 判断是否已启动 bool IsFormExists(Form frmOwner_, string strEvent_)原创 2011-09-09 11:35:08 · 712 阅读 · 0 评论 -
C# 模态窗体详细介绍
摘要:本文阐述了在基于.NET平台的Windows程序开发中使用模态窗体的诸多方面,部分内容延伸到一般窗体的应用。概述 何谓模态窗体?简单的可以理解为窗体对话框,用户必须在完成该窗体上的操作或关闭窗体后才能返回打开此窗体的窗体。本文不对模态窗体的定义、特征、功能做具体讨转载 2009-10-12 11:51:00 · 5558 阅读 · 1 评论 -
C++和C#进程之间通过命名管道通信
“命名管道”是一种简单的进程间通信(IPC)机制。命名管道可在同一台计算机的不同进程之间,或在跨越一个网络的不同计算机的不同进程之间,支持可靠的、单向或双向的数据通信。用命名管道来设计应用程序实际非常简单,并不需要事先深入掌握基层网络传送协议(如TCP/IP或IPX)的知识。因为转载 2011-10-18 10:14:14 · 1340 阅读 · 0 评论 -
.Net调用非托管代码(P/Invoke与C++InterOP)
1 .Net互操作.Net不能直接操作非托管代码,这时就需要互操作了。1.1 P/Invoke许多常用Windows操作都有托管接口,但是还有许多完整的 Win32 部分没有托管接口。如何操作呢?平台调用 (P/Invoke) 就是完成这一任务的最常用方法。要使用 P/Invoke,您可以编写一个描述如何调用函数的原型,然后运行时将使用此信息进行调用。1.1.1 枚举和常量原创 2012-04-24 16:51:57 · 8211 阅读 · 1 评论 -
C#编写Windows服务并安装与启动
Windows服务可在系统启动时自动打开的程序,非常适合做后台处理程序。1)、创建Windows服务项目 在新建项目中,选择Windows服务。 实现里面的OnStart与OnStop,同时添加对应的事务操作流程即可。如果有其他需求,可以在属性中设置(如暂停等)然后重载对应接口即可。 OnStart中不能做太费时间的操作(如果30s内不能完成,Windows就认为原创 2012-04-18 12:07:44 · 5839 阅读 · 0 评论 -
使用IPC实现进程间通讯(服务端使用Windows服务实现)
Net下看通过NetRemoting方便的实现进程间通讯,下面就具体总结一下:1、先定义通讯的接口,并封装成库:注意,如果通讯时涉及到自定义的类型,一定要添加[Serializable]属性,使类可串行化。[Serializable]public class IPCInfo{。。。}public interface IPCDll{ void SetIn原创 2012-04-18 12:05:50 · 2618 阅读 · 0 评论 -
IP Watchdog: Simple Windows Service Written in C#
BackgroundOnce upon a time I encountered a need to write a windows service that would monitor my computer's WAN IP and notify me of the changes. I discovered that this was a perfect opportunity to "转载 2012-08-24 11:46:41 · 2090 阅读 · 0 评论 -
[算法与数据结构] 走迷宫问题(广度与深度优先算法)
迷宫问题与图遍历算法简介辅助结构辅助函数深度优先搜索广度优先搜索两种搜索与最短路径算法简介我们常遇到的走迷宫问题,其实就是利用图的遍历(Traversing Graph)来求解图的连通性,常见的两种遍历方法:深度优先搜索(Depth-First Search):类似于树的先根遍历;从某点出发,遍历‘未被访问的’临节点,然后重复此过程(找到一个未访问的临节点...原创 2019-07-14 19:11:23 · 848 阅读 · 0 评论 -
[算法]在数组中查找重复数字-C#实现
查找重复数字辅助数组方式交换位置方式二分查找方式查找重复数字在长度为N的数组里存储0~N-1间的数字,其中有些数字是重复的,但不知哪些数字重复和重复次数,如何找到任意一个重复的数字。最简单的方式,可以依次遍历每个数字,然后查看后面是否有与此数字相同的数字;或者排序后,查看是否有相同的数字(相邻的数字相同)。但这些方式时间复杂度太高,后面给出一些其他实现方式,以下实现并...原创 2019-08-03 20:52:22 · 2794 阅读 · 0 评论 -
C#构造函数与资源释放Dispose
简介构造函数资源释放简介C#中struct和class的访问权限级别是一样,默认都是private;都是通过new来分配,其区别是:struct定义的是值类型,其实例在栈上分配内存; class定义的是引用类型,其实例在堆上分配内存;使用资源后,需要释放:托管资源:即由CLR里new出来的对象,由CLR管理分配和释放; 非托管资源:不受CLR管理的对象;Windows...原创 2019-07-28 12:11:49 · 1275 阅读 · 0 评论 -
Centralised Exception Handling in C# Windows Application
IntroductionYou might have been come across a situation when you may need yourapplication to Log all your application errors. This can be done using try catch blocks.But what about un转载 2009-10-30 11:25:00 · 625 阅读 · 0 评论 -
How to debug the exception
Introduction No matter you area computer programmer or a user, I think you have seen the dialog to remindyour application is crashed, and remind you to contact application vendor orreport to转载 2009-10-30 13:46:00 · 1094 阅读 · 0 评论 -
C# TextBox中只允许输入数字的解决方法
来源:中国自学编程网收集整理 发布日期:2008-12-02 最近看到一些关于TextBox中限制只允许输入数字的博文,这类问题常常用事后处理模式:录入字符结束后在控件离开(如Exit事件)或确认时进行判断。本文探讨控件录入操作的事前处理模式:做录入操作时屏蔽非数字字符。下面,结合笔者前段时间修改完善的开源数值文框转载 2009-08-12 15:09:00 · 1379 阅读 · 0 评论 -
C#路径/文件/目录/I/O常见操作汇总
<!--v/:* {behavior:url(#default#VML);}o/:* {behavior:url(#default#VML);}w/:* {behavior:url(#default#VML);}.shape {behavior:url(#default#VML);}--> Normal 0 7.8 磅 0 2转载 2009-08-18 17:39:00 · 4822 阅读 · 0 评论 -
C#的多线程机制探索
<!-- /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-a转载 2009-08-19 14:52:00 · 663 阅读 · 0 评论 -
C# 语言的预处理器指令
C# 语言的预处理器指令:#if #else #elif #endif # define #undef #warning #error #line #region #endregion #pragma #pragma warning #pragma checksum转载 2009-08-20 17:45:00 · 1079 阅读 · 0 评论 -
C++编程人员容易犯的10个C#错误
信息来源:邪恶八进制信息安全团队(www.eviloctal.com) 我们知道,C#的语法与C++非常相似,实现从C++向C#的转变,其困难不在于语言本身,而在于熟悉.NET的可管理环境和对.NET框架的理解。 尽管C#与C++在语法上的变化是很小的,几乎不会对我们有什么影响,但有些变化却足以使一些粗心的C++编程人员时刻铭记在心。在本篇文章中我们将讨论C++编程人员最容转载 2009-06-19 09:05:00 · 442 阅读 · 0 评论 -
Refactoring a Switch Statement
IntroductionThis article describes refactoring a switch statement in order to reduce Cyclomatic complexity.BackgroundMany developers would have scratched their heads in order to keeptheir转载 2009-08-21 11:53:00 · 617 阅读 · 0 评论 -
C#操作注册表
用.NET下托管语言C#操作注册表,主要内容包括:注册表项的创建,打开与删除、键值的创建(设置值、修改),读取和删除、判断注册表项是否存在、判断键值是否存在。准备工作:1:要操作注册表,我们必须要引入必要的命名空间:using Microsoft.Win32; using Microsoft.Win32;转载 2009-08-24 14:13:00 · 1316 阅读 · 0 评论 -
如何在C#中使用 Win32和其他库
作者:Microsoft(郁闷) ,some part changed by xugd C# 用户经常提出两个问题:“我为什么要另外编写代码来使用内置于 Windows 中的功能?在框架中为什么没有相应的内容可以为我完成这一任务?”当框架小组构建他们的 .NET 部分时,他们评估了为使 .NET 程序员可以使用 Win32 而需要完成的工作,结果发现 Win32 API转载 2009-06-19 09:00:00 · 740 阅读 · 0 评论 -
enum(C# 参考)
enum 关键字用于声明枚举,即一种由一组称为枚举数列表的命名常量组成的独特类型。通常情况下,最好是在命名空间内直接定义枚举,以便该命名空间中的所有类都能够同样方便地访问它。但是,还可以将枚举嵌套在类或结构中。.Net C#中枚举的声明格式如下所示: [attributes] [modifiers] enum identifier [:转载 2009-09-17 15:59:00 · 3908 阅读 · 0 评论 -
UnCommon C# keywords - A Look
<!-- //TODO 域名 if (location.hash) { document.domain=location.hash.substr(1); } //parent.qZEditor.callback(); function init(){ //获取编辑器面板ID转载 2009-09-18 11:47:00 · 811 阅读 · 0 评论 -
C#调用SQL存储过程以及返回值和参数的获取
QZone Editor .dump{} //TODO 域名 if (location.hash) { document.domain=location.hash.substr(1); } //parent.qZEditor.callback(); function init(){原创 2009-09-26 18:01:00 · 3174 阅读 · 0 评论 -
C#下改变窗体大小
在C#下要改变窗体的大小,只需要添加一个statusstrip,然后把sizinggrip改为true,这样鼠标在窗体右下角时就会出现一个大小调整手柄,就可以调整大小。 窗体大小可以调整了,但是控件不会跟着一起调整,需要为窗体添加一个Resize事件,然后在事件中调整控件的大小。下面就以一个名称为ListFiles的listview控件为例进行说明: this.ListFiles.原创 2009-09-23 11:29:00 · 7503 阅读 · 0 评论 -
托管代码与非托管代码之间的封送处理
Yi Zhang and Xiaoying Guo目录 [InAttribute] 和 [OutAttribute] 关键字 Out 和 Ref 以及通过引用传递 返回值 StringBuilder 和封送处理 复制和固定 内存所有权 反向 P/Invoke 和委托生存期 P/Invoke Interop Assistan转载 2009-10-19 16:18:00 · 3995 阅读 · 1 评论 -
用平台调用封送数据
若要调用从非托管库导出的函数,.NET Framework 应用程序需要在托管代码中包含表示该非托管函数的函数原型。若要创建使平台调用能够正确封送数据的原型,您必须执行以下操作: 将 DllImportAttribute 属性应用于托管代码中的静态函数或方法。用托管数据类型替换非托管数据类型。可以使用随非托管函数提供的文档来构造等效的托管原型,方法是通转载 2009-10-19 17:15:00 · 1315 阅读 · 0 评论 -
详解.NET编程过程中的线程冲突
文章作者:中国IT实验室整理一、什么是线程冲突 线程冲突其实就是指,两个或以上的线程同时对同一个共享资源进行操作而造成的问题。 一个比较经典的例子是,用一个全局变量做计数器,然后开N个线程去完成某个任务,每个线程完成一次任务就将计数器加一,直到完成100次任务。如果不考虑线程冲突问题,用类似下面的代码去做,则很可能会超额完成任务,线程越多,完成任务次数超出100次的转载 2009-10-23 11:41:00 · 554 阅读 · 0 评论 -
[设计模式]单例模式-C#实现
单例模式简介同步锁方式静态变量方式单例模式简介单例模式是一种常见的设计模式,它的核心结构为一个特殊的单例类。通过单例模式可以保证系统中一个类只有一个实例。常见的实现方式有:懒汉模式:不到万不得已是不会去实例化类,也就是说在第一次用到类实例的时候才会去实例化。 饿汉模式:在单例类定义的时候就进行实例化;无论是否用到,先实例化再说。一般情况下,单例模式都需要考虑线程安全,...原创 2019-07-28 21:35:54 · 148 阅读 · 0 评论