2012年3月3日

C#控件重绘学习(一)

摘要: 由于要做一个工控软件,传统的控件显然已经不能满足实际的要求了,所以控件的重绘迫在眉睫。由于考研耽误了很多时间,C#的学习也搁浅了很长一段时间了,所以趁这个机会,我打算把控件的重绘认真的学习透彻。好了,控件的重绘,让我们从普通按钮开始吧!先刨一下Button的老底:命名空间: System.Windows.Forms 程序集: System.Windows.Forms(在 System.Windows.Forms.dll 中)Button的属性就太多了:比如BackColor、Font等等。我们要做的就是修改他的这些属性。我们先自定义一个类,继承自System.Windows.Forms.But 阅读全文

posted @ 2012-03-03 19:39 胡茂晓 阅读(6911) 评论(2) 推荐(0) 编辑

2012年2月28日

C# CRC8的实现(原创)

摘要: 最近由于要做一个串口控制类的上位机程序,需要用CRC校验发送和接收的数据,于是上网搜相关内容,发现此类文章并不多,都是互相抄袭,没有自己的想法,我于是就自己仔细思考和实验了一下,发现并不难实现。CRC的原理:不准确的说就是用数据包除以CRC多项式。数据包不用说了,CRC多项式是什么呢?CRC多项式就是一个8bit的数,要求最高位是1,因此CRC16的CRC多项式就是16bit,CRC32的CRC多项式就是32bit。那么怎么除呢?就是把数据包和CRC多项式按位异或,一直异或到最后一位,最后结果就是CRC的值。废话不多讲,举一个例子看看:CRC多项式取0x85,即1000 0101数据包取b.. 阅读全文

posted @ 2012-02-28 14:25 胡茂晓 阅读(5257) 评论(1) 推荐(1) 编辑

2012年2月23日

小典故:为什么数组的索引总是从0开始,而不是1?

摘要: 今天在看Programming C#4.0突然发现了一个典故,挺有意思,发上来分享一下:C-family languages tend to number things from zero, and C# follows suit. This may seem a little idiosyncratic, but it makes sense to the computer. You can think of it as saying how far into the array you want to look. If you want to look at the thing right 阅读全文

posted @ 2012-02-23 09:11 胡茂晓 阅读(577) 评论(0) 推荐(0) 编辑

双加号(++)在C#中的用法解释

摘要: 相信很多朋友对++和--并不陌生,但对他们的用法就比较纠结了,虽然平时Code没有出什么问题,但是总也不放心,下面我来简洁的说一下这个“小”问题。比如:如果lapCount和currentLap都为3,那么执行下面这一句话之后:currenLap=lapCount++;currentLap还是3,而lapCount就是4了。相反:currenLap=++lapCount;currentLap和lapCount就都是4了。 阅读全文

posted @ 2012-02-23 08:43 胡茂晓 阅读(852) 评论(0) 推荐(0) 编辑

2012年2月22日

Visual Studio对无用引用(unused using)的处理方法

摘要: 以前以为添加到代码中的using都会被编译器编译,其实是不对的,微软有这样一段解释:Visual Studio notices when your code doesn’t use all of the libraries yourproject references, and automatically omits references to any unusedlibraries. This makes your binary slightly smaller than it would be ifunnecessary references were left in.翻译过来就是Visu 阅读全文

posted @ 2012-02-22 10:53 胡茂晓 阅读(681) 评论(0) 推荐(0) 编辑

C语言算法探究之(二):算法的准确性

摘要: 本篇是接着上一篇而写的。数学本身是非常严密的,在进行数学推导的过程中,一般要用到一些运算规则、恒等变换、公式变形等,而变换前后的式子是等价的。但在实际运算过程中,数学上完全等价的式子,其运算结果却差异很大。下面再举个例子说明:使用通常的求根公式,即:来求解一元二次方程:的两个实根。程序如下: 1 // exp2.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 #include "math.h" 6 7 int main(in 阅读全文

posted @ 2012-02-22 07:34 胡茂晓 阅读(292) 评论(0) 推荐(1) 编辑

2012年2月21日

C语言算法探究之(一):算法的准确性

摘要: 在这儿,算法的准确性不是指算法的思路是否正确,而是指算法在计算机上实际计算结果是否正确。由于计算机中的数据是采用有限位二进制数进行存储的,所以误差是不可避免的。所以一般来说,一个实数无法转换成与之完全相等的有限位二进制数,其有限位后的数字将被舍弃。举例说明:在VC++6.0中建立工程。代码如下: 1 // exp1.cpp : Defines the entry point for the console application. 2 // 3 4 #include "stdafx.h" 5 6 int main(int argc, char* argv[]) 7 { 8 阅读全文

posted @ 2012-02-21 22:33 胡茂晓 阅读(418) 评论(0) 推荐(0) 编辑

Visual Studio命令行为什么一闪而过

摘要: 很多朋友在初次接触Visual Studio的时候,都会写一个Hello World程序,当执行时,黑色的窗口一闪而过,这是为什么呢? 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 namespace HelloWorld 6 { 7 class Program 8 { 9 static void Main(string[] args)10 {11 Console.WriteLi... 阅读全文

posted @ 2012-02-21 21:09 胡茂晓 阅读(1510) 评论(0) 推荐(1) 编辑

C#4.0:新功能和展望

摘要: 刚才刚看完Anders的PDC Talk,感觉C# 4.0的变化不是很大,但是很多改动都方便了用户的使用,有些甚至当初Anders本来不愿意加入的功能最后由于用户的呼声最后还是加进去了(如Optional Parameters),可见Anders对用户的意见还是非常重视的。稍微总结一下,C# 4.0中有下面这些功能:1. dynamic/IDynamicObject这个改进使得C#向动态语言又进了一步,虽然C#并不会变成类似Perl/Python之类的动态语言(因为Anders认为静态语言所支持的一些特性比如Intellisense,类型检查等等是相当有用的),但是这并不代表C#不应该对动态特 阅读全文

posted @ 2012-02-21 09:22 胡茂晓 阅读(307) 评论(0) 推荐(0) 编辑

导航