SUMTEC -- There's a thing in my bloglet.

But it's not only one. It's many. It's the same as other things but it exactly likes nothing else...

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  263 随笔 :: 19 文章 :: 3009 评论 :: 74万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

随笔分类 -  .NET 技术内幕

上一页 1 2 3 4 下一页

一些比较核心的内容
摘要:[abc] 表示匹配abc这三个字符当中的任意一个;[^abc] 表示匹配abc这三个字符之外的其它字符;a|b 表示匹配a或者b;我来请教大家:[^a]|[b]应该会匹配什么呢?[d]|[^d]又应该匹配些什么呢?请大家先不要测试,直接写出答案,然后再把测试之后的结果也写出来。大家分析一下,这是不是一个Bug呢?其实我这个问题是因为,我想匹配除了“符号”和“空白字符”之外的所有字符,但是同时允许... 阅读全文
posted @ 2004-07-25 13:10 Sumtec 阅读(1155) 评论(7) 推荐(0) 编辑

摘要:抽空看了一下Regex的内部,不由得吓了一大跳,建议大家也“浏览”一下。我一开始还以为这个东西是用Native的代码来完成的,比如调用了mscorlib里面的某个NativeAPI,或者带上InternalCall的标志,因为它的速度性能确实不错。可是我大错特错了,整个的Regex竟然是用IL写的!内部的复杂程度不是一般的复杂啊,光看RegularExpression这个命名空间里面有多少的类就知... 阅读全文
posted @ 2004-07-23 23:31 Sumtec 阅读(1549) 评论(6) 推荐(0) 编辑

摘要:我记得第二次的时候给大家透露过可以把窗口变成“控件”一样,放到某个窗口“里面”。其实要变成“控件”那样,在某个空间里面其实很简单的,只要在构造函数里面添加一句:…… 然后我们打开Form1的设计窗口,看: 详情点击这里察看…… 阅读全文
posted @ 2004-07-22 14:19 Sumtec 阅读(1808) 评论(2) 推荐(0) 编辑

摘要:不好意思啊各位,不是存心给大家卖关子的。因为我的确还没有完成,只是阶段性的成果,所以只能够一点一点给大家挤牙膏了。我记得第一次最后给大家看了一个图片,左边那部分可以从大量的“单词”当中,找出符合前面已经输入的那一部分的那些单词。这个是一个自己写的类(从头到脚都是自己写的,除了书组和基本的类型,没有用其它的集合类型),在上一次已经初步完成了,但是今天不准备给大家放出来(还得继续吊着),因为:1、还没... 阅读全文
posted @ 2004-07-21 12:59 Sumtec 阅读(2823) 评论(15) 推荐(0) 编辑

摘要:上一次提到了一个浮动的ListBox,实现得到方法是创建另外一个窗口。这一次呢,我就来给大家带来我的代码,希望大家喜欢。不过在这之前,我先说明一下原理。一般情况下,我的原则是能够利用.NET本身提供的东西就尽量少使用API,原因见仁见智,我不罗嗦了。也就是说呢,这里并没有用到任何的API。有人说了,得到Desktop的hWnd然后在上面画——我对于这个想法感到恐惧,因为你要手动画ListBox,手... 阅读全文
posted @ 2004-07-19 16:35 Sumtec 阅读(2717) 评论(7) 推荐(0) 编辑

摘要:我想大家用VS.NET的时候一定对那个智能提示印象深刻,如果你仔细看看,你就会发现那个智能提示的下拉框实际上是在整个VS.NET IDE的外面的。比如说,如果你把VS.NET IDE变成不是最大/小化的时候,在编辑区的最下方调出只能提示下拉框,并且在屏幕下方留有足够的空间,你就会发现那个下拉框竟然申到VS.NET IDE的外面了!第一印象你一定会觉得那个是一个FormBorderStyle为Non... 阅读全文
posted @ 2004-07-18 11:18 Sumtec 阅读(1577) 评论(10) 推荐(0) 编辑

摘要:MS的代码是这样的: public static Form ActiveForm{ get { IntSecurity.GetParent.Demand(); IntPtr ptr1 = UnsafeNativeMethods.GetForegroundWindow(); Control control1 = ... 阅读全文
posted @ 2004-07-17 15:43 Sumtec 阅读(1502) 评论(2) 推荐(0) 编辑

摘要:不知道大家有没有想过这一个弱弱的问题?反正我想过了,并且在一段时间里面百思不得其解。那些成对的运算符,为什么非要成对的进行定义呢?eg:A>B 难道不应该等于 !(A -> !(= -> !( !(==)如果觉得要引入||不好,顶多再定义一个和!=,编译器也应该能够自动产生相应的函数啊。产生一个编译错误是在让人头痛,因为不得不做一些重复性的劳动。最后我在float... 阅读全文
posted @ 2004-07-05 13:10 Sumtec 阅读(892) 评论(5) 推荐(0) 编辑

摘要:先问大家一个问题:objA == objB 和 objA.Equals(objB) 是否等价?答案显然是要看具体情况,或者说很可能是不等价的。 可是如果我这么问呢?对于定义float A, B; A == B 是否应该和 A.Equals(B) 完全等价呢?应该是的吧?也许大家的答案有下列几个之一:1、Equals通常用于在==运算符重载的时候,比较引用是否相等。2、Equals通常用于比较引... 阅读全文
posted @ 2004-07-05 12:49 Sumtec 阅读(737) 评论(2) 推荐(0) 编辑

摘要:假设只接受public/private两个修饰符,并且只接受void/bool/int三个返回类型,接受字段、属性和函数。函数不允许有参数,属性有get/set(为简单起见,先get后set),字段只能是bool/int两个类型(不允许初始化)。函数和属性的内容为空,只有一对花括号。那是不是应该这么写呢? (?(?public|private)\s+(?void|bool|int)\s+(?\w+... 阅读全文
posted @ 2004-06-30 12:35 Sumtec 阅读(1816) 评论(2) 推荐(0) 编辑

摘要:我的正则表达式构造器,点击这里下载。(上一次忘了贴链接了……)注意:请仔细看链接里面的注意!!(比如“文件”菜单是没有反应的,等等!不要不看注意就问问题,谢谢!)就是上次提到的那个: 阅读全文
posted @ 2004-06-30 12:31 Sumtec 阅读(688) 评论(2) 推荐(0) 编辑

摘要:我的正则表达式构造器,点击这里下载。就是上次提到的那个: 阅读全文
posted @ 2004-06-30 10:11 Sumtec 阅读(677) 评论(4) 推荐(0) 编辑

摘要:什么是正则表达式呢?正则表达式实际上是一个主要用来描述字符串匹配的工具,当然也可以用来匹配其它的东西例如二进制数据,用在字符串方面可能是最常见的。说到这里,可能大家会联想到如下几个主题:怎么排除恶意的脚本代码?要写一个脚本语言引擎或者编译器,是否可以用正则表达式来完成?编译原理?实际上要说清楚这里面的所有问题也许已经超出了我的能力范围了,但是我还是要写下来,再不写下来也许哪天我就真的忘得一干二净了... 阅读全文
posted @ 2004-06-29 15:53 Sumtec 阅读(1591) 评论(1) 推荐(0) 编辑

摘要:最近不知道各位有没有到MS的网站上面看,在VS的页面里面有一个.NET的十个必用工具的Post。这个Post里面介绍的好几个工具都确实非常有用,比如说Reflector、NUnit、Regulator等等。说起来真巧,这里面介绍的Reflector最近就被我检查出一个Bug,这个Bug在查看Microsoft.WindowsCE.Forms.dll里面的_SIPWnProc函数,翻译出来的C#代码... 阅读全文
posted @ 2004-06-26 21:56 Sumtec 阅读(1353) 评论(4) 推荐(0) 编辑

摘要:最近在某处装了一个Whidbey的CTP May版本(应该是May吧?还是March?忘了),因此兴冲冲去玩了一把。稍微熟悉了一下环境,然后就开始试用那些新的功能了。比如说Generics……不过没有我想象当中的兴奋,因为这些东西基本上看过演示和介绍,都知道运行后大概会有什么结果,所以我连运行一下的兴趣都没有。倒是一些从来没有介绍过的功能比较吸引我的注意力,比如说Performance的测试器(相... 阅读全文
posted @ 2004-06-25 16:54 Sumtec 阅读(823) 评论(0) 推荐(0) 编辑

摘要:delegate void MyInvoker();void Test(MyInvoker Invoker, int SomeOthers){ //... codes here}void Test(object DefaultValue, int SomeOthers){ //... codes here}Test(null, 1);对于这样一个代码,大家说说看会调用哪一个函数?答案是del... 阅读全文
posted @ 2004-06-19 14:02 Sumtec 阅读(1173) 评论(3) 推荐(0) 编辑

摘要:不知道有多少人真正仔细看过.NET Framework的CLR?如果你仔细看过的话一定和我有同样的感受:写这个类库的,有三类人:1、天才;2、普通人,不过很有经验;3、普通人,但是估计刚刚大学毕业。比如说,大家看一下System.Security.Crytography里面的代码,写得非常的棒,非常的严谨。另外HashTable也是写得非常好的,甚至我有点怀疑这个HashTable有些地方是直接用... 阅读全文
posted @ 2004-06-09 11:27 Sumtec 阅读(2244) 评论(16) 推荐(0) 编辑

摘要:为了弄.Game Framework,为了在里面实现分布式计算,就需要实现一些数据安全方面的东西,比如说加密,验证,签名,密钥交换等等。这个问题真不是一般的简单……本来想先弄出个基于Udp的协议来,结果却没有办法好好的继续下去。原因很简单:你得选择一套数据安全策略。比如签名的方法决定了签名的长度,签名太长了就会影响数据传输效率。如果不采用那些安全的签名方法,自己弄一套,确实是有可能让签名数据变得小... 阅读全文
posted @ 2004-06-07 17:12 Sumtec 阅读(1079) 评论(2) 推荐(0) 编辑

摘要:很为中国人伤心,因为这是一片人云亦云的地方。为什么?我问大家一个问题Monitor.Wait和Monitor.Pulse分别是什么意思?这个时候大概会有一半的人查MSDN或者Google一下,然后就回答:Monitor.Wait()是 释放对象上的锁并阻塞当前线程,直到它重新获取该锁。Monitor.Pulse()是 通知等待队列中的线程锁定对象状态的更改。如果按照MSDN上面的解释,Wait应该... 阅读全文
posted @ 2004-06-04 10:22 Sumtec 阅读(2423) 评论(10) 推荐(0) 编辑

摘要:我想我已经完成了ThreadPool的测试了,测试的代码和初始结果看这里,后来又做了一次更加详细一点的测试,结果看这里。我想结论已经很明显了,相对于不使用线程池的多线程来说,如果任务比较多,根本就是鸡蛋碰石头,性能相差非常的明显!(当然是线程池比较优秀啦。)当然,对于非常少量的大任务而言,多线程也许更简单,也更合理。但是性能差别还是不大的,除了一点:由于任务持续时间长,必然占用线程池有限的线程数量... 阅读全文
posted @ 2004-06-03 12:55 Sumtec 阅读(1116) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 下一页
点击右上角即可分享
微信分享提示