![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C# 实践
软刺刺猬
这个作者很懒,什么都没留下…
展开
-
MVC官方教程索引
1.MVC教程首页http://www.asp.net/learn/mvc/?lang=cs2.MVC概况2.1创建一个基于数据库的"电影"web应用http://www.asp.net/learn/mvc/tutorial-21-cs.aspx2.2MVC执行过程http://www.asp.net/learn/mvc/tutorial-22-cs.aspx转载 2012-07-31 11:58:23 · 434 阅读 · 0 评论 -
使用Reflactor反编译.Net程序
Reflactor是.net下的免费反编译工具,具体使用这里就不介绍了。Reflactor在某些情况下是很必须的,当遇到bug的时候,可以通过Reflactor看其内部的实现机制,从而找到真正的bug所在。或者可以通过reflactor查看私有生成,然后在用反射去调用。 上面说的都是正当用途,有的时候也可以用来反编译别人的软件(这里要讲的是没有混淆和加密的软件的反编译)。reflect转载 2012-07-30 11:22:33 · 1499 阅读 · 0 评论 -
SQL Server XML 数据类型
关系数据库一直给我们行和列的影响,通过扩展无非就是添加行记录,然后也有添加列.至于分表扩展等我就不多说了.XML作为一种数据的载体,是否适用于关系型数据库呢?我不敢定论,但是通过一系列项目的经验也让我感受到XML在关系数据库中的魅力.当然也有人第一接触XML在SQL Server的支持时候大吃一惊,为什么我们需要呢?通过一些资料我们也可以看看高人们对XML在关系型数据库中的理解,比如在书转载 2012-07-30 11:22:28 · 1579 阅读 · 0 评论 -
XmlSerializer学习
public class ObjectXmlSerializer { /// /// deserialize an object from a file. /// /// /// /// /// /// /// loggingEnab转载 2012-07-30 11:22:13 · 523 阅读 · 0 评论 -
c# 支持XML序列化的泛型 Dictionary
/// /// 支持XML序列化的泛型 Dictionary /// /// /// [XmlRoot("SerializableDictionary")] public class SerializableDictionary : Dictionary, IXmlSerializab转载 2012-07-30 11:22:05 · 842 阅读 · 0 评论 -
[Linq] Enumerable.Aggregate[转载]
Enumerable.Aggregate() 是 Linq 的扩展方法,用于对集合序列进行累计操作。第一次使用时,可能有点摸不着头脑。var ints = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 };var result = ints.Aggregate((total, next) =>{ Console.WriteLine("total:{0转载 2012-07-30 11:21:50 · 553 阅读 · 0 评论 -
用C#的Raw Socket实现网络封包监视
谈起socket编程,大家也许会想起QQ和IE,没错。还有许多网络工具如P2P、NetMeeting等在应用层实现的应用程序,也是用socket来实现的。Socket是一个网络编程接口,实现于网络应用层,Windows Socket包括了一套系统组件,充分利用了Microsoft Windows 消息驱动的特点。Socket规范1.1版是在1993年1月发行的,并广泛用于此后出现的Windows9转载 2012-07-30 11:21:44 · 495 阅读 · 0 评论 -
面向对象编程五大原则
单一职责原则SRP:Single Responsibility Principle开放封闭原则OCP:Open-Close PrincipleLiskov替换原则LSP:Liskov Substitution Principle依赖倒置原则DIP:Dependency Invertion Principle接口隔离原则ISP:Interface Separate Principle转载 2012-07-30 11:21:36 · 283 阅读 · 0 评论 -
简明批处理(天极)
批处理文件是无格式的文本文件,它包含一条或多条命令。它的文件扩展名为 .bat 或 .cmd。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。使用批处理文件(也被称为批处理程序或脚本),可以简化日常或重复性任务。当然我们的这个版本的主要内容是介绍批处理在入侵中一些实际运用,例如我们后面要提到的用批处理文件来给系统打补丁转载 2012-07-30 11:21:27 · 330 阅读 · 0 评论 -
dynamic增强C#泛型机制
C++的泛型是基于模板(template)技术的。模板本身并不作为独立的编译单元,而是在编译时绑定实际参数类型进行模板实例化,类似与C语言的宏展开,在运行时并不存在独立的模板类型。模板对泛型参数的约束是基于操作的语法特征的,属于一种静态的duck typing机制,十分灵活。 下面的代码定义了一个泛型Add函数,它对泛型参数T的要求只是支持+运算,并不要求T是某个类的子类,或是实现转载 2012-07-30 11:22:39 · 1241 阅读 · 0 评论 -
值得关注的三个开源的云计算项目
鉴于很多云计算爱好者想学习云计算开发但不知道如何入手,云计算专家提醒想要学习云计算开发的人员关注以下三个开源的云计算项目,接触开源的东西能够更好更快的掌握云计算。Enomalism云计算平台。Enomalism是一个开放源代码项目,它提供了一个功能类似于EC2的云计算框架。Enomalism基于Linux,同时支持Xen和KernelVirtualMachine(KVM)。Enomalis转载 2012-07-30 11:22:55 · 1544 阅读 · 0 评论 -
NoSQL数据库笔谈
一.序二.思想篇CAP最终一致性变体BASE其他I/O的五分钟法则不要删除数据RAM是硬盘,硬盘是磁带Amdahl定律和Gustafson定律万兆以太网三.手段篇一致性哈希亚马逊的现状算法的选择Quorum NRWVector clockVirtual nodegossipGossip (State Transfer Mode转载 2012-07-31 11:58:21 · 374 阅读 · 0 评论 -
浅谈如何学习加密与解密技术
很多人都想学习解密,这东西刚入门时会让人沉迷进去,可以饭不吃、觉不睡。出现这种现像,也许是解密满足了人们的猎奇心里吧。但掌握这方面技术,对自身的提高确实有好处。可以通过跟踪软件,提高自己的调试技能,并且能了解他人程序思路,使自己写出更好的程序。研究解密技术有助于掌握一些系统底层知识,系统底层知识绝对是构造起大型软件的坚实基础。许多程序发展,都经历了这一锻炼过程的。 而大多数人可能认为解密是一门高深转载 2012-07-31 11:58:16 · 1546 阅读 · 0 评论 -
.net 代码混淆原理性实践
现在我们已经很清楚,托管PE文件可以轻而易举的被反编译,如果您想源代码不被使用者通过反编译的方式获得,该使用哪种保护手段呢?借鉴传统Windows应用程序防止被反汇编的做法,我们也可以采用代码混淆和对应用程序集加壳的方法。关于程序集加壳的内容我会在下一篇文章中讨论。代码混淆,简单的说就是使用名称替换、字符串加密等手段使得我们最初的代码面目全非,从而使破解者即使能能成功获得IL代码也转载 2012-07-31 11:58:14 · 669 阅读 · 0 评论 -
一个游戏程序员的学习资料
想起写这篇文章是在看侯杰先生的《深入浅出MFC》时, 突然觉得自己在大学这几年关于游戏编程方面还算是有些心得,因此写出这篇小文,介绍我眼中的游戏程序 员的书单与源代码参考。一则是作为自己今后两年学习目标的备忘录,二来没准对别人也有点参考价值。我的原则是只写自己研究过或准备研究的资料,所以内容无 疑会带上强烈的个人喜好色彩, 比如对网络,数据库等重要方面完全没有涉及。因为自己主要对三维图形引擎, 人转载 2012-07-31 11:57:56 · 559 阅读 · 0 评论 -
让数据库飞起来 10大DB2优化技巧
为了帮助 DB2 DBA 避免性能灾难并获得高性能,我为我们的客户、用户和 DB2 专家同行总结了一套故障诊断流程。以下详细说明在 Unix、Windows 和 OS/2 环境下使用 DB2 UDB 的电子商务 OLTP 应用程序的 10 条最重要的性能改善技巧 - 并在本文的结束部分作出 总结。 10. 监视开关 确保已经打开监视开关。如果它们没有打开,您将无法获取您需要转载 2012-07-30 11:23:25 · 1304 阅读 · 0 评论 -
优化SQL Server数据库查询方法
SQL Server数据库查询速度慢的原因有很多,常见的有以下几种:点击下载 Microsoft SQL Server 2005 Express Edition>> 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有创建计算列导致查询不优化。 4、内存不足 5、网络速度慢转载 2012-07-30 11:23:18 · 443 阅读 · 0 评论 -
如何在程序运行中动态改变对象属性在PropertyGrid可见性和只读属性
以下两个方法分别实现可见性和只读属性的动态改变:void SetPropertyVisibility(object obj, string propertyName, bool visible) { Type type = typeof(BrowsableAttribute); PropertyDescriptorCollection props = TypeDescripto转载 2012-07-30 11:23:10 · 1719 阅读 · 0 评论 -
属性串行化
目的:我们要明确控件属性为什么要串行化?关于串行化的定义如果你还不熟悉的话可以Baidu下,简单的说就是,我们要将我们在控件属性上设定的值持久化到代码中,这样我们下次再查看控件的值依然是我们最后一次设定的值。备注:关于DesignerSerializationVisibilityAttribute的解释 指示一个属性是否串行化和如何串行化,它的值是转载 2012-07-30 11:23:00 · 595 阅读 · 0 评论 -
SQL SERVER 获取表结构信息的SQL语句
SELECT 表名 = case when a.colorder=1 then d.name else '' end, 表说明 = case when a.colorder=1 then isnull(f.value,'') else '' end, 字段名 = a.name, 主键 = case when exis转载 2012-07-30 11:21:10 · 531 阅读 · 0 评论 -
C# WinForm开发系列 - WebBrowser
介绍Vs 2005中带的WebBrowser控件使用以及一些疑难问题的解决方法, 如如何正确显示中文, 屏蔽右键菜单, 设置代理等; 收集的文章中有可能还带了一些Asp.Net开发使用微软的WebBrowser进行页面打印方面文章.01. vs2005中的WebBrowser控件的简单应用02. WebBrowser控件的简单应用203. WebBrowser控件应用:弹出转载 2012-07-30 11:21:03 · 493 阅读 · 0 评论 -
C#调用Win32 的API函数--User32.dll
Win32的API函数是微软自己的东西,可以直接在C#中直接调用,在做WinForm时还是很有帮助的。有时候我们之直接调用Win32 的API,可以很高效的实现想要的效果。 代码 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System转载 2012-07-30 11:20:14 · 439 阅读 · 0 评论 -
正则表达式写法
((\d{11})|^((\d{7,8})|(\d{4}|\d{3})-(\d{7,8})|(\d{4}|\d{3})-(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1})|(\d{7,8})-(\d{4}|\d{3}|\d{2}|\d{1}))$)匹配格式:11位手机号码3-4位区号,7-8位直播号码,1-4位分机号如:12345678901、1234-12转载 2012-07-27 20:48:14 · 1167 阅读 · 0 评论 -
用c#生成随机中文汉字验证码的基本原理
1、汉字编码原理 到底怎么办到随机生成汉字的呢?汉字从哪里来的呢?是不是有个后台数据表,其中存放了所需要的所有汉字,使用程序随机取出几个汉字组合就行了呢?使用后台数据库先将所有汉字存起来使用时随机取出,这也是一种办法,但是中文汉字有这么多,怎么来制作呢?其实可以不使用任何后台数据库,使用程序就能做到这一切。要知道如何生成汉字,就得先了解中文汉字的编码原理。 1980年,为了使每一个汉字有一转载 2012-07-27 20:46:55 · 492 阅读 · 0 评论 -
说说免杀
免杀与被杀一直是不灭的话题,随便说说我的免杀方法网上和饭客的其他帖子已经说了很多了,我就不多说什么废话了。在此说一点,我个人倾向于无损免杀,像那种直接NOP、00填充或者加一减一的大部分都是有损免杀,也许当时管用,换一个操作系统可能就不行了。1.最常用的就是通用条转法了,不多说。2.其次就是交换上下句,也不多说。3.仔细琢磨特征码的附近语句,看看有什么是多余转载 2012-07-27 20:45:35 · 631 阅读 · 0 评论 -
关于提高.net应用程序效率的一些经验总结
通过自己对一些教程、书籍的学习,以及自己在实际开发中的一些体会总结如下,希望能对大家在撰写高效率.net应用程序方面有所帮助:1,小心使用虚拟堆栈,不要滥用不要在方法或者是函数中声明太多、太大的局部变量,比较明确的数目不要声明多余64个局部变量,无须实现太大的方法,尽量使用精小、多个实现的方法或者函数,这样可以产生较好的CLR程序代码,JIT也能够据此产生良好的本机执行代码。转载 2012-07-27 20:44:29 · 402 阅读 · 0 评论 -
c#判断一个文件是否是图形文件
1. 通过文件的扩展名来判断。这种方法比较简单, 但若是有人故意改下文件扩展名,这种方法就不起作用了。2.通过C#自身提供的方法来进行判断(判断某种确定的图片类型)。 EX: bool isJPG = false; System.Drawing.Image img = System.Drawing.Image.FromFi转载 2012-07-27 20:39:30 · 1015 阅读 · 0 评论 -
C# 命名规范
Data Control类 型前 缀示 例AccessDataSourceadsadsPubsDataListdlstdlstTitlesDetailViewdvwdvwTitlesFormViewfvwfvwFontsGridViewgvwgvwCityObje转载 2012-07-27 20:36:54 · 529 阅读 · 0 评论 -
C# 如何定义让PropertyGrid控件显示[...]按钮,并且点击后以下拉框形式显示自定义控件编辑属性值
首先定义一个要在下拉框显示的控件:using System;using System.Windows.Forms;namespace Simon.WinForms.Examples.PropertyGrid{ public class EditorControl : UserControl { public EditorControl()原创 2012-07-27 20:37:43 · 4178 阅读 · 0 评论 -
C#使用反射机制获取类信息
1.用反射动态创建类实例,并调用其公有成员函数。//新建一个类库项目,增加一个GetSum方法。using System; namespace ClassLibrary1{ public class Class1 { public Class1() { } public int GetSum(int x,转载 2012-07-27 20:48:42 · 449 阅读 · 0 评论 -
C#内存操作 (转)
最近闲来无事发现周围的朋友都在玩《植物大战僵尸》的游戏!于是动了制作这游戏工具的念头!虽然在网上同类工具很多 但是用C#写的我几乎看不到!所以我想用C#写一个! 首先用CE或者OD或者其他反汇编工具找出游戏的内存基址! 游戏内存基址:base = 0x006A9EC0 游戏阳光地址:[base+0x768]+0x5560 游戏金钱地址:[base+0x82C]+0x28转载 2012-07-27 20:50:31 · 500 阅读 · 0 评论 -
SQL语句大全
一、基础1、说明:创建数据库Create DATABASE database-name2、说明:删除数据库drop database dbname3、说明:备份sql server--- 创建 备份数据的 deviceUSE masterEXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwi转载 2012-07-30 11:20:05 · 215 阅读 · 0 评论 -
细说UI线程和Windows消息队列
在Windows应用程序中,窗体是由一种称为“UI线程(User Interface Thread)”的特殊类型的线程创建的。首先,UI线程是一种“线程”,所以它具有一个线程应该具有的所有特征,比如有一个线程函数和一个线程ID。其次,“UI线程”又是“特殊”的,这是因为UI线程的线程函数中会创建一种特殊的对象——窗体,同时,还一并负责创建窗体上的各种控件。窗体和控件大家转载 2012-07-27 16:48:12 · 773 阅读 · 0 评论 -
windows笔记-内核对象
有哪些内核对象?如下:存取符号对象、事件对象、文件对象、文件映射对象、I / O 完成端口对象、作业对象、信箱对象、互斥对象、管道对象、进程对象、信标对象、线程对象和等待计时器对象等。这些对象都是通过调用函数来创建的。 什么是内核对象?内核对象只是内核分配的一个内存块,并且只能由该内核访问。该内存块是一种数据结构,它的成员负责维护该对象的各种信息。有些数据成员(如安转载 2012-07-27 21:32:44 · 314 阅读 · 0 评论 -
在C#中使用针对当前程序的钩子
相信以前用过VB、Delphi,特别是VC的程序员应该对钩子程序都不陌生。在C#中我们同样可以使用钩子程序来实现特殊效果,比如当用户按下某个特殊键时提示,比如关闭应用程序前提示等。当然使用方法相对VC来说要稍微复杂一点,有的地方还不太方便,下面的例子中实现两个基本功能:1、按下Alt+F4时使窗口最小化2、关闭应用程序前提示不过目前只能捕获消息,不能屏蔽消息,我正在实验,也希望转载 2012-07-27 21:30:29 · 1459 阅读 · 0 评论 -
进程与线程、应用程序域关系
进程一旦被创建,主线程是无法干涉它的。线程的销毁在.net中是通过抛出一个异常,来终止这个线程的。在.net出现以前,一个进程下,只能运行一个应用程序,而在,net出现后,一个进程下,可以运行多个应用程序,这都是因为应用程序域的出现。以前使用进程边界来隔离在同一台计算机上运行的应用程序。每一个应用程序被加载到单独的进程中,这样就将该应用程序与在同一台计算机上运行的其他应用程序相隔离转载 2012-07-27 20:55:56 · 494 阅读 · 0 评论 -
提高算法性能——位运算
转自:编程论坛 http://bbs.bccn.net/thread-252089-1-2.html这篇文章很强大,虽然c#不推荐用指针,还是很爽的之后还有一篇matrix67大大的文章,更加强大------------------------------------------------------------------------------------------转载 2012-07-27 20:55:12 · 408 阅读 · 0 评论 -
C# 实现对硬件的控制
因为C#自身对硬件的操作基本为零,为此,搜索了一下MSDN中与设备相关的API函数。还果然就有。下面一一列举出各函数的原型及相关的说明文档。并将其转为C#代码实现。 函数一: RegisterDeviceNotification功能:注册设备或者设备类型,在指定的窗口返回相关的信息 原型: HDEVNOTIFY WINAPI RegisterDeviceNotif转载 2012-07-27 20:54:52 · 5174 阅读 · 3 评论 -
C# 取MAC地址
//// /// 取MAC地址 /// /// 目标IP /// 源IP /// MAC地址 /// MAC地址的长度 /// [DllImport("iphlpapi.dll", ExactSpelling = true)] pu转载 2012-07-27 20:53:28 · 677 阅读 · 0 评论 -
图标等资源的引用
项目上右键,选属性,打开项目资源控制面板。选择[添加资源]-根据需要选择[现有文件]或其他选项。现在以添加现有文件为资源为例。点击[打开]就将文件引用到项目中了。我们可以对项目中的资源文件更改名称,以方便使用。在编码时,可以用如下代码来引用this.Icon = Properties.Resources.引用的现有文件;原创 2012-07-27 15:59:12 · 606 阅读 · 0 评论