C#语言
文章平均质量分 77
Timothy Liu
回头再说吧。
展开
-
深入浅出WPF(10)——“脚踩N条船”的多路Binding
深入浅出WPF(10)——“脚踩N条船”的多路Binding 小序: 通过前面几个章节的学习,我们已经了解了Data Binding的基本常识和简单的使用方法。今天让我们更进一步,学习一下多路Data Binding。说实话,起“脚踩N条船”这个标题,实在有点不雅,可为了让大家记忆方便,我也管不了那么多鸟~~~那么什么是多路Binding、它有什么用、怎么用呢? 正文原创 2008-08-07 00:47:00 · 8121 阅读 · 7 评论 -
2008-05-24 日志:CTCU的第一节课!
2008-05-24 日志:CTCU的第一节课!听Yanni的音乐就一定要把音箱的音量开到最大,才过瘾!我在CTCU的第一节课终于讲完了。老实说,并不算特别成功,但这是我培训经历中收获最大的一次。为什么这么说呢?因为这些课创下了很多“纪录”,下面我就一一道来。 听众水平最高的一次课:听众中有2/3是熟练的C++程序员,其中又有1/2是多年工作经验的C++程序员,基本上稍微有些原创 2008-05-24 21:06:00 · 2715 阅读 · 3 评论 -
杂七杂八——使用LINQ检索重复值
杂七杂八——使用LINQ检索重复值 日常工作的时候,我们经常遇到需要检索一组数据中是否有重复值的情况,再根据具体情况进行相应的操作。如果不使用LINQ,那我们就得使用一层一层的foreach循环来做,不但麻烦、工作效率低(因为你得绕啊~~绕啊~~~),而且容易出bug。使用LINQ就方便得多。 举个我前天在工作中遇到的例子吧。当时是这样的——我需要查看一下用户新插入的值是否已经存在原创 2008-08-02 18:49:00 · 5992 阅读 · 4 评论 -
杂七杂八(1)——如何查看本机的.NET Framework版本
今天上午Edward同学问我一个问题:如何知道自己本机安装的.NET Framework版本呢?以前这个问题我也遇到过,那就是在写自动部署程序的时候,如果客户的机器已经安装了.NET Framework就不再安装。作为安装包的制作者,自己应该是知道程序是用哪个版本.NET Framework编译的。目前.NET Framework的版本有1.1(基本上已经退出舞台)、2.0.50727、3.0原创 2008-05-17 12:02:00 · 13237 阅读 · 6 评论 -
WPF感悟(1)
WPF感悟(1) UI层与逻辑层要尽可能地剥离(解耦)。 Routed Event和Command比Event的耦合度要低。 UI层与逻辑层的“血管”是数据关联(Data Binding)。 尽量不要试图通过UI层去拿数据或者操作数据,而是直接去操作数据源。例如: 想对一个TreeView里的结点排序,不应该是对TreeVi原创 2008-05-16 14:42:00 · 9927 阅读 · 8 评论 -
深入浅出WPF(9)——数据的绿色通道,Binding(下)
深入浅出WPF(9)——数据的绿色通道,Binding(下) 小序:看着自己上一篇技术文章,屈指算来,已经月余没有动笔了——实在是不像话。最近一来是忙工作,二来是兴趣点放在了设计模式上,而且尝试着把设计模式也“深入浅出”了一把,当然啦,因为对于design pattern我也是初学,在没有经过大家检验之前我是不敢拿到blog里丢人现眼滴~~~现在项目组里由喵喵同学、美女燕、大马同学和原创 2008-07-31 20:27:00 · 10422 阅读 · 22 评论 -
深入浅出WPF(1)——什么是WPF
深入浅出WPF(1)——什么是WPF 小序: Hi,大家好!几乎两个月没有写技术文章了。这两个月,我在学习WPF。回顾一下两个月的学习历程,有两个感觉——第一,WPF是一项非常实用又简单易学的东西,它将成为未来MS平台上快速开发的主流趋势;第二,WPF的学习比较讲求路径,如果没有一个比较好的路径,学习起来可能比较慢,主要原因是它像是一种ASP.NET与Windows Forms原创 2008-05-15 19:06:00 · 48769 阅读 · 40 评论 -
2008-03-16 日志:C#周末班授课总结
时间过的真快,我们已经讲完三节课了!站在我个人的角度来看,仅代表我个人的看法,这节课是知识上最连贯的一节课。有了前两节课的基础知识铺垫,这节课讲起来十分轻松自如。当然,我知道如果站在大家的角度来看,情况也许没这么乐观——继承还好,一到多态、覆盖、隐藏、接口、抽象类、virtual方法这些地方,就会感觉天旋地转。 请大家不要紧张。几乎每位学习编程的同学在这里都会经历一段时间因它们而引原创 2008-03-16 23:02:00 · 3069 阅读 · 1 评论 -
2008-03-08 日志:C#周末班授课总结
Hi 大家好!时间过的可真快——当我还在为上节课中犯的小错误耿耿于怀的时候,这周的小错误已经犯下了(比如忘记了Application的名称空间、protected应该使用base关键字等等,还好,及时更正了),实在是对不起大家,请大家千万不要被干扰:)非常感谢大家仔细填写了课程反馈表,并给我如此高的评价——比上节课给出的分数更高了一点——当然,我知道,由于我们之间更加熟悉了、大家更加接纳我了,原创 2008-03-08 23:53:00 · 2535 阅读 · 1 评论 -
2008-03-01 日志:C#周末班授课总结
Hi 各位同事,大家好!首先之首先——非常感谢大家今天给予我的支持! 说实话,我拿这么枯燥的内容来折磨大家好几个小时,而大家从都到尾都给予我积极和同步的反馈、提出各种各样切中主题价值不菲的问题,真是太让我感动了。你们的每一个眼神、每一个问题,都值得我珍藏。自始至终,没有一位同事离场,这对于我来说是莫大的奖励和肯定。谢谢你们!还有咱们那几们老同事、好兄弟。虽然这些内容你们比我还清楚、还精通,原创 2008-03-02 00:29:00 · 2815 阅读 · 5 评论 -
2008-03-03 日志:周末C#培训班(初级班)课程概要
Hi 大家好:刚才刘莹告诉我,让我列出C#初级班的课时安排,以方面同事们有选择地来听课。正好也是我非常乐意做的事情。不过,有几点注意: 课时安排不是死的:在大框架不变的情况下,内容的增减在所难免,还请大家关注每次课的开课提示。 课时安排的主要用途是帮助大家做好预习和课前准备 课时安排的次要目的是在大家万一有事情不能参加培训的情况下有选择地放弃 所以原创 2008-03-03 15:01:00 · 3072 阅读 · 7 评论 -
2008-02-27 日志:博彦科技C#周末班开课提示
博彦科技C#周末班开课提示Hi,各位博彦科技的同仁、各位C#粉丝和铁丝: 大家好! 在刘莹的精心准备下,咱们的C#周末班就要开课了。很荣幸,我能担任这次课程的主讲、与大家一同分享两年来积累下来的一点编程经验与感悟。本次课程将由Ida同学全程为大家提供热心细致的后勤服务,在此,表示对Ida同学的感谢。 大家一定都很关心这次培训的主要内容和目标。开宗明义,就让我简要地描述原创 2008-02-27 21:01:00 · 4045 阅读 · 4 评论 -
杂七杂八——C#实现二叉树,外带中序遍历
杂七杂八——C#实现二叉树,外带中序遍历 发现用C#语法实现数据结构的时候,代码显得干净利落,嘻嘻。 using System;namespace BinaryTree{ // Binary Tree的结点类 class Node { public int Data { get; set; }原创 2008-08-06 15:55:00 · 3401 阅读 · 6 评论 -
深入浅出WPF(2)——解剖最简单的GUI程序
深入浅出WPF(2)——解剖最简单的GUI程序小序:从这篇文章开始,我们进行XAML语言的上手学习。说实话,XAML这种语言一点也不难。如果把XML看成是“父类”,那么XAML就是XML的一个派生类了,所以XML的概念在XAML中是通用的。What?你不了解XML?没关系,反正我们是从头开始!正文:你还能想起学C/C++的时候写的第一个程序吗?呵呵,一定是“Hello World”原创 2008-05-24 23:25:00 · 10562 阅读 · 26 评论 -
WPF实例秀——不用属性也Binding(XAML篇)
WPF实例秀——不用属性也Binding 正文:实际编程中,因为我们较多地使用到Binding类的Source与Path,所以可能会有一个思维定式,那就是:有可能作为数据源的类一定要准备好一些属性,这些属性将作为Binding的Path。如果本着这个思想去设计有可能作为数据源的类,那么会有两个问题出现:1. 这个类的哪些属性有可能作为数据源的Path?是都需要激发Notify原创 2008-12-16 00:01:00 · 14920 阅读 · 19 评论 -
WPF实例秀——如何获取UI元素的图像
WPF实例秀——如何获取UI元素的图像 这个标题还真难说明白,我还是再解释一下吧。 比如我想在UI上拖拽某个元素,拖拽过程中,我需要让这个UI元素的影相跟着鼠标移动(但UI还停留在原位),当放开鼠标的时候,UI元素移动到新的位置。 这是个很常见的需求,实现这个需求的第一步就是获取这个UI元素的影相。实现这一步其实很简单,核心就是使用VisualBrush这个画刷子类。原创 2008-12-12 17:50:00 · 10402 阅读 · 7 评论 -
杂七杂八——适用于WPF的设计模式
杂七杂八——适用于WPF的设计模式 小序:当梦想突然有一天变成现实的时候,我们会有什么样的感觉?惊喜自然是少不了的。惊喜过后呢?剩下的就是要接受现实了——就像小鬼当家里的小家伙。 正文:有朝一日能把软件的UI设计和逻辑设计分开,这是多年来程序开发人员的梦想。如今,这个梦想被XAML+C#实现了,大家都很开心。开心过后,问题来了——Binding与依赖属性再好使、路由事件和原创 2008-12-16 22:08:00 · 15719 阅读 · 11 评论 -
杂七杂八——Name与x:Name的关系
杂七杂八——Name与x:Name的关系 小序: 如果想用Google搜包含冒号的内容怎么办?比如我想搜x:Name这个字符串……原来,应该是这样——x::Name这世道,连搜索也要加转义,全民程序员,要不要人活了? 正文: 从第一天学习XAML语言开始,我就一直没分清为什么对于一个XAML标签既可以设置它的Name又可以设置它的x:Name。问过一些同事原创 2008-12-11 17:46:00 · 17850 阅读 · 22 评论 -
2008-06-28 日志:架构师的要害
2008-06-28 日志:架构师的要害不知道有多少技术高手和初级手把自己的目标定为了当一名架构师,不知道多少程序员以为自己已经走在了成衣架构师的路上,不知道有多少书在写如何成为一名架构师……架构师应该具备什么样的素质? 对语言细致透彻的理解 对OO精华的领悟 对Design Pattern的运用自如 对软件结构的了如指掌 ……原创 2008-06-28 21:19:00 · 4769 阅读 · 8 评论 -
深入浅出WPF(8)——数据的绿色通道,Binding(中)
深入浅出WPF(8)——数据的绿色通道,Binding(中)小序:今天中午吃完饭回工位的路上,和俺们组资深的Level 2技术支持肖老师聊了几句。我跟肖老师说,最近我在学习Binding,肖老师说——那可不是个好东西!因为如果在程序中使用了Binding,当出现错误的时候,比较难于调试。道理很简单——以前使用事件(C++里是回调)的时候,能明确地在事件处理函数里去跟踪调试,现在使用Bind原创 2008-06-27 00:26:00 · 14066 阅读 · 10 评论 -
深入浅出WPF(7)——数据的绿色通道,Binding(上)
深入浅出WPF(7)——数据的绿色通道,Binding(上) 小序:怎么直接从2蹦到7啦?!啊哦,实在是不好意思,最近实在是太忙了,忙的原因也非常简单——自己的技术太差了,还有很多东西要学呀。门里门外,发现专业程序员非常重要的一项技能是读别人写的代码,这项技能甚至比自己写代码更重要。Anstinus同学就是读代码的高手,我写的代码他看两眼就知道怎么回事了,并且能够立刻修改,而他的代码我读了原创 2008-06-23 02:40:00 · 35092 阅读 · 34 评论 -
WPF感悟(3)——关于向窗体动态添加控件
WPF感悟(3)——关于向窗体动态添加控件这是一个很有意思的话题。首先,虽然在讲课的时候,我时常会讲到一些关于动态地向窗体中添加控件的例子,但在实际工作中我却很少用用到要这个技术。一般情况下,控件在窗体上是写好的,只是根据需要显示与隐藏。其次,也是最重要的——我标题用的是“窗体”没有用Window,这是为什么呢?因为同样看上去是窗体,WinForm编程对应的类是Form,WPF编程对应原创 2008-06-07 15:33:00 · 11423 阅读 · 12 评论 -
WPF感悟(2)——XAML与C#的语法不对称
WPF感悟(2)——XAML与C#的语法不对称XAML的语法与C#的语法并不是完全对称的,最明显的就是在设置Binding的时候。XAML:如何看待ItemsSource="{Binding ...}这个attribute?如果认为是listBox1.ItemsSource = new Binding(...);,那就错了——数据类型都不匹配。实际上,这句XAML对应的C#应该原创 2008-06-03 18:14:00 · 7858 阅读 · 8 评论 -
杂七杂八(2)——可以把重写看成是对函数的“重新赋值”
杂七杂八(2)——可以把重写看成是对函数的“重新赋值”小序:如此“不严谨”、如此“谬误”的标题,一看就是找骂的!正文:前几天在读代码的时候,发现代码里有一些函数,函数体是空的。起初是以为那是为了实现一个Interface或者是一个Abstract类而实际上又没什么实际用处才这么做的,于是没太当回事。今天Anstinus同学指导我写代码的时候,又用到这个“技术”,我才明白——这些函数原创 2008-05-22 21:55:00 · 4546 阅读 · 11 评论 -
深入浅出话窗体(一)——窗体事件模型(上)
深入浅出话窗体(一)——窗体事件模型(上) 作者:CSDN 刘铁猛 小序: 工作中最大的挑战并不是那些Mission Impossible,而是你需要一边保持安静、平衡的心态以专注于工作,一边对抗公司体制、社会经济和人际环境对这种心态的破坏——这是对儿永远也解不开的矛盾。 正文: 记得我在前原创 2007-06-10 01:56:00 · 5758 阅读 · 8 评论 -
深入浅出Attribute (中)——Attribute本质论
深入浅出Attribute(中)——Attribute本质论CSDN 刘铁猛2007-06-04小序: 上篇里,我们把Attribute“粘”在类的成员方法上show了一把,让Attribute跟大家混了个脸儿熟。中篇里,我们将探讨“究竟什么是Attribute”和“如何创建及使用Attribute”这两个问题。 准备好了吗?L原创 2007-06-04 03:02:00 · 26336 阅读 · 24 评论 -
深入浅出话友元
深入浅出话友元小序: 有一阵子没来打扫Blog了……技术这东西,就是走走停停的,一段时间就会遇到一个瓶颈、迷茫一下,然后发现与其因为迷茫而停滞不前,不如瞄准一个大方向勇敢地游下去。 这两天有几个正在学习C++的同学问我什么是“友元”、C#里有没有“友元”,C++里的friend关键字是不是就相当于C#里的protected关键字。 O原创 2006-11-08 00:06:00 · 4824 阅读 · 2 评论 -
深入浅出话事件(上)
深入浅出话事件(上)小序 在上篇文章(《深入浅出话委托》)中,我们集中讨论了什么是委托以及委托的用法。有朋友问:什么时候用委托——说实话,使用某种编程要素是一种思想,更是一种习惯。举个极端点的例子:比如你问我“什么时候使用for循环”,我完全可以回答——根本用不着for循环,用if加goto就完全能够搞定——我们大多数人使用for循环,是因为我们认同for循环的思想,并且养原创 2006-06-19 11:04:00 · 22696 阅读 · 15 评论 -
深入浅出话委托
深入浅出话委托小序好久不来更新Blog了,一是因为工作比较忙,最重要的还是交了女朋友:),太爱她了。回顾了一下前面写的文章,看来大家还是很喜欢我的灌水风格,那今天就来写一写最近被问到的最多的问题——委托与事件。并把本文献给支持我工作的兄弟姐妹们和我亲爱的女友(虽然你看不懂代码,嘻嘻)。说实话,论“深入”,就我这臭水平绝对深不到哪儿去,我尽量给大家讲明白就是了。如果内容上有什么闪失,麻烦兄弟原创 2006-06-13 08:39:00 · 14155 阅读 · 46 评论 -
深入浅出话事件(下)
深入浅出话事件(下)二.事件的由来 在传统的面向对象的概念中是没有“事件”这个概念的。传统的面向对象概念中只有数据(Data,也称为field、域、成员变量)和方法(Method,也就是成员函数、function)。如果我没记错,那么事件这个概念最早出现在微软的COM技术中,又因为VB是基于ActiveX(COM的一种)的,所以“事件”这一概念便通过VB广而推之、为众多程序员所原创 2006-06-20 13:38:00 · 6736 阅读 · 11 评论 -
用C#搞对象(一)——启程
小序……走四方,路迢迢、水长长,迷迷茫茫一村又一庄……多么熟悉的歌啊!歌声中,想像着自己有一天也能背着行囊、迎着远方又大又红的苹果,sorry,是夕阳,在晚霞的光辉中走向远方,追寻自己的梦想——真美。相信大家都知道这首歌的名字——《走四方》,演唱者是我最喜欢的歌手韩磊,我也非常喜欢他唱的《天蓝蓝,海蓝蓝》、《向天再借500年》,总之很喜欢他的歌,有男人味!可惜的是市面上没有他的C原创 2006-09-24 17:02:00 · 5272 阅读 · 12 评论 -
WinForm自动化测试工具开发札记(5)使用.NET Framework 2.0 新功能抓屏
花絮上火了,眼睛疼ing...滴了眼药...看你还敢疼的!这两天一直在攻克抓屏这一关.手头有几本书,还有网上的一些例子,都是使用Win32 API的BitBlt函数.大同小异.今天在看.NET Framework 2.0的类库时,偶然发现原来抓屏功能已经集成进.NET Framework 2.0的Graphics类了,是个实例方法.两行代码就搞定!下面我给出代码.排在后面的是使用Win32实现原创 2006-03-29 12:38:00 · 4838 阅读 · 18 评论 -
WinForm自动化测试工具开发札记(4)
写在开头 请大家远离酒精,我不想再失去朋友...架构复用 这两天使用Win32 API参考对软件能用到的功能进行了一些小的尝试. 基本上没有什么太大的困难,只要努力,都能克服. 如果让这些功能散落在程序中,那么这个程序肯定写不出来.下面一段时间就开始设计类库了.使用接口/Abs类/类,把这些功能组织起来.昨天晚上在纸上大概画了画,画着画着才发现--咦,这不原创 2006-03-26 18:32:00 · 3723 阅读 · 0 评论 -
WinForm自动化测试工具开发札记(3)
技术攻关 从今天开始准备P0中所需技术的Demo,有了Demo就知道原理了,正式开始写的时候就没那么头大了. 捕捉窗口的技术 目的:得到当前鼠标位置是哪个窗口. 以前学过一点点Win32,知道在Windows操作系统中,所有你见到的东西--无论是窗体还是控件,都是"窗口",是窗口,就会与一个WindowClass相关联.这个WindowClass原创 2006-03-24 18:03:00 · 4300 阅读 · 3 评论 -
WinForm自动化测试工具开发札记(2)
概要设计 虽然是个没人给钱的项目,但毕竟也是要投入时间和精力滴,所以设计还是必要滴。 我把自己的想法写下来,谁看到了,还有其它要求就写在后面的评论里,如果合理我就加进来。一、软件设计的目的: 1. 自娱自乐,学习知识。 2. 以后工作上可能会用得着。就算我用不着,别人不见得用不着。二、软件的命名: 从昨天到今天,想了很多,本来中原创 2006-03-23 17:27:00 · 7048 阅读 · 11 评论 -
WinForm自动化测试工具开发札记(1)
序言 一转眼来北京已经四个月了。度过了回龙观没有暖气的冬天,迎来了春天——脑子终于化开了。 明天搬家,搬到积水潭,这样可以离工作的地方(Sigma大厦)近一些。我以为我能改变自己夜行动物的习惯,看来努力失败了。还是在晚上工作吧,这回到多晚都没事了,不用急着赶城铁,走着都能回家。 背后那个组的同仁们自己开发了一个WinForm的自动测试工具,挺好玩儿,那么我原创 2006-03-22 18:16:00 · 6858 阅读 · 17 评论 -
[倾情原创] 锁·二则——lock关键字详解
法律声明:本文章受到知识产权法保护,任何单位或个人若需要转载此文,必需保证文章的完整性(未经作者许可的任何删节或改动将视为侵权行为)。文章出处请务必注明CSDN以保障网站的权益,文章作者姓名请务必保留,并向bladey@tom.com发送邮件,标明文章位置及用途。转载时请将此法律声明一并转载,谢谢!锁·二则作 者:刘铁猛日 期:2005-12-25关键字:lock 多线程 同步小序锁者,loc原创 2005-12-25 17:35:00 · 5600 阅读 · 12 评论 -
深入浅出话多态(上)——具体而微
深入浅出话多态(上)——具体而微小序 前几天写了一篇《深入浅出话委托》,很多兄弟姐妹发Mail说还算凑合,又有兄弟说能不能写一篇类似的文章,讲解一下什么是“多态”。一般情况下我写文章都是出于有感而发:一来做个思考的总结(怕时间长了就忘记了),二来与大家分享一下。“多态”实在是个大概念,我没有仔细研究过,更不消说在实践中有深入的使用,所以本文纯属硬着头皮上——如果内容有什么原创 2006-06-29 11:19:00 · 7154 阅读 · 18 评论 -
深入浅出话多态(下)——牛刀小试
深入浅出话多态(下)——牛刀小试小序 英格兰走了……巴西的表演还没有开场。闲着也是闲着,我把下篇写出来。 正文一.多态的现实意义 如果一个编程元素没有可以应用在软件工程中的现实意义,那将是一件不可容忍的事情。同理,如果你不了解一个编程元素的现实意义、不知道在编程时应该怎么用,就不能说自己懂得了这个编程元素。 我的编程经验实在不多,就我原创 2006-07-03 02:56:00 · 5520 阅读 · 19 评论 -
C# 3.0 语言定义文档(微软官方版)正式发布!
C# 3.0 语言定义文档(微软官方版)正式发布 如果想精通一门编程语言,你就需要像律师研究法律条款一样来研究这门语言的定义文档(Language Specification,简称LangSpec)。 静悄悄地,C# 3.0语言定义文档在经过众多社区爱好者的review后,于2007-08-20号面世了! 作为一个C#语言的使用者和爱好者,你能原创 2007-08-25 23:20:00 · 8819 阅读 · 8 评论