随笔分类 -  原创

[面试]第1次做面试官
该文被密码保护。
posted @ 2013-08-25 00:06 SamWang 阅读(4283) 评论(95) 推荐(9) 编辑
[整理]C#反射(Reflection)详解
摘要:本人理解:装配件:Assembly(程序集)晚绑定:后期绑定MSDN:反射(C# 编程指南)-----------------原文如下--------1、 什么是反射2、 命名空间与装配件的关系3、 运行期得到类型信息有什么用4、 如何使用反射获取类型5、 如何根据类型来动态创建对象6、 如何获取方法以及动态调用方法7、 动态创建委托1、什么是反射 Reflection,中文翻译为反射。 这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,而反射提供一种编程的方式,让程序员可以在... 阅读全文
posted @ 2013-08-14 10:41 SamWang 阅读(161168) 评论(8) 推荐(39) 编辑
【SQL】通过Sql实现根据分组合并指定列内容的查询 SamWang
摘要:问题: 最近在做一个项目的时候,遇到这样一个要求,模拟要求如下: ID SName1 张三1 李四2 刘六2 王五要的结果是ID name1 张三,李四2 刘六,王五即按ID组查询,并将相同的ID对应SName内容通过逗号合并解决思路: 通过传递不同的id给函数,查询出组合的SName并返回。--创建测试表IF NOT EXISTS(SELECT * FROM sysobjects WHERE id=OBJECT_ID(N'StudentsInfo') AND OBJECTPROPERTY(id,N'IsUserTable')=1)CREATE TABLE .. 阅读全文
posted @ 2012-11-23 11:15 SamWang 阅读(5881) 评论(9) 推荐(1) 编辑
【改进】C# WinForm捕获全局异常 SamWang
摘要:许多小公司的项目都缺少异常处理模块,我们也是。经常会出现这种情况,用户在UI界面操作,就直接跳出堆栈调用的异常信息对话框,老板看到那叫一个火啊!你们的代码怎么天天出现乱码。呵呵!这就是没有异常捕获处理导致的,现在许多人写代码都没意识处理异常,只要实现功能就好,我的许多组员也是如此。 项目刚接手,所以打算做一个异常全局捕获,统一处理的模式,采用具体详细信息的对话框提醒与日志文件保存方式。以下是根据网上找的C#winform全局异常捕获做了点修改。(等项目异常处理全部完成后,将心得体会做个记录,此处暂对全局异常捕获做个记录) 1 static class Program 2 ... 阅读全文
posted @ 2012-11-14 11:29 SamWang 阅读(25157) 评论(12) 推荐(7) 编辑
【笔记】《C#高效编程改进C#代码的50个行之有效的办法》第1章C#语言习惯(1)--属性的特性以及索引器(SamWang)
摘要:**************************************************************************书名:《C#高效编程改进C#代码的50个行之有效的办法》**************************************************************************第1章 C#语言习惯/1--------------------------------------------------------------建议1: 使用属性而不是可访问的数据成员/ 1--------------------------- 阅读全文
posted @ 2012-11-01 16:41 SamWang 阅读(2083) 评论(4) 推荐(1) 编辑
【整理】SqlServer在视图上创建索引的条件
摘要:在视图上创建索引需要三个条件:一、视图必须绑定到架构。要做到这点,在 CREATE VIEW 语句中,必须加上 WITH SCHEMABINDING,如果是使用企业管理器,则在设计界面的空白处点击右键,属性,选中“绑定到架构”。二、索引必须是唯一索引。要做到这点,在 CREATE INDEX 中必须指定 UNIQUE。三、索引必须是聚集索引。要做到这点,在 CREATE INDEX 中必须指定 CLUSTERED。例:CREATE VIEW viewFoo WITH SCHEMABINDINGASSELECT id...CREATE UNIQUE CLUSTERED INDEX index_v 阅读全文
posted @ 2012-09-25 20:28 SamWang 阅读(11457) 评论(0) 推荐(0) 编辑
【整理】C# ToString格式字符串整理(Format)(数字、日期和枚举的标准格式设置说明符)(SamWang)
摘要:日常开发中,格式字符串的情况非常多。经常也会忘记,经常去查有些麻烦,所以今天就花点时间做个整理。 格式字符串用的比较多的有数字、日期与枚举的格式化。 一、数字格式字符串 C或c本地货币格式D或d 十进制格式,把整数转换为以10为基数的书,如果给定一个精度说明符,就加上前导0E或e 科学计数法(指数)格式,精度说明符设置小数位数(默认为6),格式字符串的大小写(e或E)确定指数符号的大小写。F或f 固定点格式,精度说明符设置小数位数,可以为0G或g普通格式,使用E或F格式取决于哪种格式较简单N或n 数字格式,用逗号表示千分符,例如32,767.44P或p 百分数格式X或x十六进... 阅读全文
posted @ 2012-06-29 14:30 SamWang 阅读(8473) 评论(3) 推荐(6) 编辑
【笔记】使用.net中的Debug与Trace加强调试能力(SamWang)
摘要:最近在读《.NET开发人员调试策略》,书倒是不错,只是翻译的比较差。不过里面介绍的一些调试的心得还不错,有些收获。 下面我就总结下本书中关于Debug和Trace的一些应用,算作一种读书笔记。 粗略概括下关于修改BUG的几种方法:通过调试器调试 顾名思义就是跟踪源代码进行调试,微软还提供了远程调试的功能。通过源代码的方式调试,我们一般会采用以下的几种方法:使用Exception使用MessageBox。使用#if Debug .. #endif使用断言调试:其中有Debug.Assert和Trace.Assert两种,Debug只在Debug模式下有效,Trace则都有效。断言模式... 阅读全文
posted @ 2012-05-30 14:25 SamWang 阅读(2196) 评论(2) 推荐(4) 编辑
【分析】浅谈C#中Control的Invoke与BeginInvoke在主副线程中的执行顺序和区别(SamWang)
摘要:今天无意中看到有关Invoke和BeginInvoke的一些资料,不太清楚它们之间的区别。所以花了点时间研究了下。 据msdn中介绍,它们最大的区别就是BeginInvoke属于异步执行的。Control.Invoke 方法 (Delegate) :在拥有此控件的基础窗口句柄的线程上执行指定的委托。Control.BeginInvoke 方法 (Delegate) :在创建控件的基础句柄所在线程上异步执行指定委托。msdn说明:控件上的大多数方法只能从创建控件的线程调用。 如果已经创建控件的句柄,则除了 InvokeRequired 属性以外,控件上还有四个可以从任何线程上安全调用的方法... 阅读全文
posted @ 2012-05-25 09:28 SamWang 阅读(27172) 评论(11) 推荐(15) 编辑
【笔记】《编写高质量代码:改善c#程序的157个建议》-第1章 基本语言要素(SamWang)
摘要:**************************************************************************该书在线阅读:编写高质量代码:改善C#程序的157个建议源代码下载:点我下载**************************************************************************第1章 基本语言要素 / 2-------------------------------建议1:正确操作字符串 / 2-------------------------------确保尽量少的装箱避免分配额外的内存空间 注:. 阅读全文
posted @ 2012-05-22 17:08 SamWang 阅读(2507) 评论(7) 推荐(5) 编辑
【技巧】DataGridView重新绑定时保持上次滚动位置(SamWang)
摘要:问题: 今天在项目时遇到一个问题,将DataTable绑定到DataGridView,其中一列为CheckBox列,当我修改该列值时,触发CellValueChanged事件。当我在此事件中处理它的DataSource时,发现该单元格对应的DataTable的值尽管已经改变,但是它的RowState属于Modified。 当我用DataTable.Select()查询相关数据时,该单元格值竟然还是引用老数据。尽管尝试设置DataViewRowState来查询,结果也是无效(此处可能有我不知道的内容,照理说应该能实现)。 于是采用另外的办法,就是调用DataTable.AcceptChan... 阅读全文
posted @ 2012-05-16 11:18 SamWang 阅读(4284) 评论(2) 推荐(2) 编辑
【原创】C# 实现拖拉控件改变位置与大小(SamWang)(附源代码下载)
摘要:前言: 很多时候我们需要在运行时,动态地改变控件的位置以及大小,以获得更好的布局。比如说实际项目中的可自定义的报表、可自定义的单据等诸如此类。它们有个特点就是允许客户或者二次开发人员设计它们需要的界面设置功能。 本人以前也做过可自定义系统,包括界面和功能,主要为了减少开发人员的工作量以及程序的灵活性和健壮性。 本篇主要讨论下,在运行时如何实现拖拉控件,达到改变控件位置与大小。功能将模拟VS设计界面时的拖拉功能。 (本篇暂不涉及多控件同时操作)一、技术概述 其实实现运行时控件的拖拉并不难,主要是改变控件的Location与Size即可。动态调整时再捕获MouseDown、MouseMo... 阅读全文
posted @ 2012-05-14 14:54 SamWang 阅读(8605) 评论(24) 推荐(10) 编辑
【类】C# 导入导出Excel通用类(SamWang)
摘要:1 /****************************************************************** 2 * 创 建 人: SamWang 3 * 创建时间: 2012-3-16 9:59 4 * 描 述: 5 * 导入导出Excel通用类 6 * 版 本: V1.0 7 * 环 境: VS2005 8 ******************************************************************/ 9 using Syste... 阅读全文
posted @ 2012-05-10 09:15 SamWang 阅读(4402) 评论(7) 推荐(1) 编辑
【类】C#计算器类(SamWang)
摘要:1 /****************************************************************** 2 * 创 建 人: SamWang 3 * 创建时间: 2011-11-29 4 * 描 述: 5 * 计算器类:能直接对表达式进行计算,支持变量 6 * 原 理: 将表达式按字符压入堆栈中,然后按照各操作符的级别进行处理 7 * 版 本: V1.0 8 * 环 境: VS2005 9 *********************************... 阅读全文
posted @ 2012-05-09 17:20 SamWang 阅读(1543) 评论(0) 推荐(0) 编辑
【整理】C#文件操作大全(SamWang)
摘要:文件与文件夹操作主要用到以下几个类: 1.File类: 提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建 FileStream 对象。 msdn:http://msdn.microsoft.com/zh-cn/library/system.io.file(v=VS.80).aspx 2.FileInfo类: 提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建 FileStream 对象 msdn:http://msdn.microsoft.com/zh-cn/library/system.io.fileinfo(v=VS.80).aspx 3.... 阅读全文
posted @ 2012-05-09 16:47 SamWang 阅读(55489) 评论(0) 推荐(10) 编辑
【功能】C# 控件实现内容拖动(DragDrop)功能(SamWang)
摘要:一、将控件内容拖到其他控件 在开发过程中,经常会有客户要求,拖动一个控件的数据到另外一个控件中。例如将其中一个ListBox中的数据拖到另一个ListBox中。或者将DataGridView中的数据拖动到TreeView的某个节点。 在应用程序中,是通过处理一系列事件,如DragEnter,DragLeave和DragDrop事件来实现在Windows应用程序中的拖放操作的。通过使用这些事件参数中的可用信息,可以轻松实现拖放操作。 拖放操作在代码中是通过三步实现的,首先是启动拖放操作,在需要拖动数据的控件上实现MouseDown事件响应代码,并调用DoDragDrop()方法;其次是... 阅读全文
posted @ 2012-05-08 15:33 SamWang 阅读(24081) 评论(0) 推荐(2) 编辑