Welcome 微信登录

首页 / 软件开发 / .NET编程技术

ADO.NET中容易混淆的概念

ADO.NET中容易混淆的概念

ADO.NET中容易混淆的概念2011-01-06 cnblogs 雨叶秋寒一、DataTableDataTable表示内存中数据的一个表,它完全是在内存中的一个独立存在,包含了这张表的全部信息。DataTable可以是从通过连接从数据库中读取出来形成的一个表,一旦将内容读到DataTable中,此DataTable就可以跟数据源断开而独立存在;也可以是完全由程序自己通过代码来建立的一个表。◆ DataColumn一个表是由行和列组成的一个两维的结构。表的...
俄罗斯方块——图形编程

俄罗斯方块——图形编程

俄罗斯方块——图形编程2011-01-06王杰瑞第三个题目是俄罗斯方块游戏。该游戏算法比较简单,主要功夫都在界面体验上了,比如方块图形、用户控制、消去与累计等。图形我们采用GDI+画图方式显示,共8种图形,当然可以根据自己的喜好随意定制。如何表示图形?我们可以借鉴马赛克效果。把所有图形都用3*3矩阵表示,0表示背景色显示,1表示着色显示。比如{0,0,0},{0,1,0}, 表示T型,看出来了吗?每个数字位置其实就是一个正方形小块。{1,1,1}用户控制?...
垃圾收集的认识与思考——.NET GC

垃圾收集的认识与思考——.NET GC

垃圾收集的认识与思考——.NET GC2011-01-06 csdn博客 徐建明垃圾收集器用来在.NET中进行内存管理,特别是它可以恢复正在进行中的应用程序需要的内存。到目前为止,WINDOWS平台已经使用了两种技术来释放进程向系统动态请求的内存:完全以手工方式使应用程序代码完成这些工作让对象维护引用计数让应用程序代码负责释放内存是低级、高性能的语言使用的技术,例如C++。这种技术很有效,而且可以让资源在不需要的时候就释放(一般情况下),但最大的缺点是频繁...
ValueType.Equals(null)的底层实现及CLR虚拟机对其结构支持

ValueType.Equals(null)的底层实现及CLR虚拟机对其结构支持

ValueType.Equals(null)的底层实现及CLR虚拟机对其结构支持2011-01-06 博客园 lbq1221119在定义任何一个ValueType之后,它都是从System.ValueType继承过来的,默认的就继承了Equals方法和GetHashCode方法,在使用的时候,必须主意的是最好重写自定义ValueType的这两个方法,因为可能带来性能上面的严重问题或者是比较的不正确。譬如定义下面这样的一个结构体值类型:struct Test...
.Net托管资源非托管资源垃圾回收的疑问

.Net托管资源非托管资源垃圾回收的疑问

.Net托管资源非托管资源垃圾回收的疑问2011-01-06 博客园 阿水CLR为开发者提供了一个非常让人激动的功能--垃圾回收。但是园子里关于垃圾回收的讨论,大多是讨论垃圾回收的原理,以及Dispose模式。但是垃圾回收在实际使用时,是不是可以达到其设计的目标,在开发过程中有没有需要注意的问题呢?本人也不是非常明确,这篇文章希望能达到抛砖引玉的效果,希望个人牛人能够给本人或同样存在疑惑的人一个清楚明确的答案。什么是垃圾回收?就是说你在使用CLR的时候(不...
Emit学习-实战篇-实现一个简单的AOP框架(一)

Emit学习-实战篇-实现一个简单的AOP框架(一)

Emit学习-实战篇-实现一个简单的AOP框架(一)2011-01-06 博客园 yingql周末两天窝在家里,使用Emit做了一个非常简单的AOP框架,当做是这几周学习Emit后的一个实践。东西出来了,自然要和大家分享一下,虽然框架做的比较粗糙、简单,但是也已经能够看到一点AOP的雏形了,用来自己无聊玩玩还是可以的,当然要用到产品中去肯定还需要长期的完善啦。说起AOP相信园子里很多高手都研究过,园子里好像也有自己的开源AOP项目,不过我时间有限没有细找,...
Emit学习-实战篇-实现一个简单的AOP框架(二)

Emit学习-实战篇-实现一个简单的AOP框架(二)

Emit学习-实战篇-实现一个简单的AOP框架(二)2011-01-06 博客园 yingql已经9点了,就不废话了,直接开讲,今天就简单的介绍下框架中用到的一些接口和属性。昨天把我们关注的切面分成了三类,现在给出这3个接口的定义:接口定义/// <summary>/// 在调用方法体前执行的处理接口/// </summary>public interface IPreProcess{ bool PreProcess(...
.NET深入学习笔记(1):DataSet和SqlDataReader性能差异深入剖析

.NET深入学习笔记(1):DataSet和SqlDataReader性能差异深入剖析

.NET深入学习笔记(1):DataSet和SqlDataReader性能差异深入剖析2011-01-06 博客园 Frank Xu LeiDataSet和SqlDataReader的比较的文章和帖子网上已经很多,我也看了很多前辈的随笔.自己在面试和实际工作中也遇到这样的问题.但是始终是没深入进行学习.最近在工作空闲之余,特地查阅了一些文章,也包括msdn的官方文档.自己建立数据库和测试程序,对DataSet和SqlDataReader做了比较.首先关于两...
.NET深入学习笔记(2):C#中判断空字符串的4种方法性能比较与分析

.NET深入学习笔记(2):C#中判断空字符串的4种方法性能比较与分析

.NET深入学习笔记(2):C#中判断空字符串的4种方法性能比较与分析2011-01-06 csdn 清清月儿写的一篇关于字符串为空判断方法的性能分析文章,实验结果作者已经给出,结论是使用.length==0判断的效率最高,但是文章的结尾只有一句话,感觉不够详细,所以自己写下这个文章,算一个补充和学习吧.程序代码执行的硬件环境:CPUIntel T2300 1.66GHz内存Kingston DDR2 667 1G硬盘80G 5400转 8m测试的软件环境...
.NET深入学习笔记(3):垃圾回收与内存管理

.NET深入学习笔记(3):垃圾回收与内存管理

.NET深入学习笔记(3):垃圾回收与内存管理2011-01-06 博客园 Frank Xu Lei今天抽空来讨论一下.Net的垃圾回收与内存管理机制,也算是完成上个《WCF分布式开发必备知识》系列后的一次休息吧。以前被别人面试的时候问过我GC工作原理的问题,我现在面试新人的时候偶尔也会问相关的问题。那么你是否也遇到这样的问题呢?比如你清楚.Net的垃圾回收机制吗?你能简述一下GC的工作原理吗?怎么样才能有效的管理内存呢?Using语句体内实例化的对象有什...
.NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)

.NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)

.NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)2011-01-06 博客园 Frank Xu Lei今天继续利用准备WSE安全开发文章的空闲时间,完善《.NET深入学习笔记》系列(基本都是.Net重要的知识点,我都做了详细的总结,是什么、为什么、和怎么实现)。想必很多人也接触过这两个概念。做过C++的人对深浅拷贝的概念一定不会陌生。而其很多C#高级软件工程师的面试里也会问到深浅拷贝相关的问题。我今天就在总...
EyesBaby功能实现之Windows前景色调节器

EyesBaby功能实现之Windows前景色调节器

EyesBaby功能实现之Windows前景色调节器2011-01-06 博客园 Billy Qing其实所谓Windows前景色调节器就是利用Winform窗体遮盖整个Windows区域。主要要求实现窗口透明,且鼠标可以穿过窗体点击其他程序。难点就是怎么样让鼠标穿透窗体,代码也是从网上找的,现在找不到原链接了:)原理就是调用Windows API设置窗口的属性。代码:using System;using System.Collections.Generi...
在.net中利用数据工厂实现多数据库的操作

在.net中利用数据工厂实现多数据库的操作

在.net中利用数据工厂实现多数据库的操作2011-01-09松晨在项目的开发过程中,在设计模式的概念还没有出来时,我们那时候在编写程序时,往往如果项目的数据库是采用SQL Server,然后用户又想换其它数据库如Oracle时,我们就需要对其代码进行重写,特别是在一些软件的产品化道路中,我们做出来的产品如果让用户可以有选择的去选取各种数据库,那无疑对用户提供了很大的方便。自从工厂模式的设计理念出来以后,这一切实现就变得容易得多,如果大家对微软的PETSH...
Visual Studio 2005 IDE的使用技巧和窍门

Visual Studio 2005 IDE的使用技巧和窍门

Visual Studio 2005 IDE的使用技巧和窍门2011-01-09 MSDN James Lau将双手保持在键盘上我最喜欢使用的键盘快捷方式您可曾有过这样的期望:在 Visual Studio 内部进行开发工作时双手不必离开键盘?如果您是一名高级用户,您肯定会享受到使用键盘快捷方式执行各种操作所带给您的飞速体验。我确信大部分开发人员都已经熟悉了其中的某些快捷方式。使用 F5 执行 Debug.Start、F10 执行 Debug.StepOv...
<< 31 32 33 34 35 36 37 38 39 40 >>