今天遇到了一个问题,有十个控件,名称很类似,只是尾数不同.操作也是一样的,只是各个取得数据的条件不同.但是事件还是一样的.一个个单独的去写有些繁琐.比较方便的办法就是把他们作为整体去处理.在赋值和读数据的时间使用循环操作.
而这时,利用控件的名字获得控件就是一个很重要的环节了.
”’ <summary>
”’ 根据名称取得控件
”’ </summary>
”’ <param name="Name">控件名</param>
”’ <param name="CurrentForm">窗体</param>
”’ <returns></returns>
”’ <remarks></remarks>
Private Function GetControlByName (ByVal Name As String, ByVal CurrentForm As Form) As Control
Dim info As FieldInfo = _
CurrentForm.GetType().GetField("_" & Name, _ “”此处的下划线让我郁闷了
BindingFlags.NonPublic Or _
BindingFlags.Instance Or _
BindingFlags.Public Or _
BindingFlags.IgnoreCase)
Dim a As Object = CurrentForm.GetType.GetMembers()
Dim files As System.Reflection.FieldInfo() = CurrentForm.GetType.GetFields()
If Not info Is Nothing Then
Return CType(info.GetValue(CurrentForm), Control)
End If
Return Nothing
End Function
这里有点不一样的就是在控件名称前面要加上一个”_”这个可能是VB.NET和C#.NET的区别吧.VB.NET中反射的时间,会在所有控件前面加一个”_”,至于这其中的用意,不是很理解.不过,VB.NET本身就很怪异了.
昨天开始了新项目的coding,今天已经算是熟悉了,不过总是有种百废待兴的感觉.而且,这两天,boss一直在催上个项目的反省书,感觉很是郁闷,唉,日本人也是喜欢挺好听的,这个道理估计全世界都是一样的.
还有一个月奥运会就开始了,08年真得是很精彩.希望这种精彩结束语奥运吧.这样看来还算不错了,快结束了.
vb.net里面很多关键词和C#里面很不一样,不过还好了,那些接口都没有变.这样好多了,不然自己真得很郁闷.明天的任务是把那些重复的控件,搞成自己的小共通,虽然费些脑子,不过,后期维护就方便多了.
vb.net里面把null替换成nothing,生活中有些事情也是一样的,nothing is nothing,just nothing.没有什么原由.
因为下一个项目使用的是vb.net,而自己以前接触的主要是C#,C++这些.虽然大学期间学过vb.开始以为vb到vb.net不会很复杂,毕竟都是.net,而且有C#的基础.
不过在看了msdn两天之后,觉得vb.net的水很深,其中很多于C#迥然不同的东西,这些天主要就是熟悉这些不同的地方.感觉还行了,只是开始的时间有些不太适应.呵呵,C# vs VB.net 我宁愿选C#,VB.net微软做了太多太多,使用起来反而有点不适应了.
感觉msdn还是个好东西, 可以在上面学倒不少的东西.
微软企业类库–Enterprise Library 4.0 - May 2008,虽然自己也对ms有些成见,不过不得不承认,在比较懒惰的情况下,Enterprise Library 的确是一个不错的选择.时间喝精力都是如此.
Overview
The
patterns & practices Enterprise Library is a collection of reusable
application blocks designed to assist software developers with common
enterprise development challenges. This following application blocks
are included: Caching Application Block, Cryptography Application
Block, Data Access Application Block, Exception Handling Application
Block, Logging Application Block, Policy Injection Application Block,
Security Application Block, Validation Application Block, and Unity
Application Block.
This release includes:
- Support for Visual Studio 2008.
- Integration with the Unity dependency injection container.
- WMI2 support and improved instrumentation.
- Support for pluggable cache managers.
- Performance improvements.
点此下载
C++,有点遥远了.上周因为烤鸭的诱惑,所以帮一个同事弄了个C++的小程序.很久没有碰C++了,感觉很生疏,再就是C++的编译器让我感觉很头痛,虽然有很多的选择,但是真正用起来的时间,总是有中不知所措的感觉.
C++和.net,java比较起来,可以说是简洁而不简单.自己对C++也只能说是入门而已,本来就有打算重新折腾下的.C++中的.h给人的印象还是很深刻的,只是定义..net里面的接口应该就是从这里得到的灵感.不过C++更彻底了一些.上帝的归上帝.
我觉得C++和.net还是比较适合我的,java经过现在的项目,稍微有些阴影了.后面一段时间还要来对应.不过可以没事利用这段时间折腾下C++.特别是那个Boost C++ Libraries.
从到东京开始就进入这个项目,从开始对java一窍不通,到现在对java还是一窍不通.呵呵,三个月了.项目经理周五的时间开会说了一通话,大致的意思就是项目差不多结束了.大致也就这样了.回过头来看看现在的项目,只能说一个子心寒.
- 项目极端混乱,没有编码规约,没有详细的文档说明.很多时间听到的一句话就是和老系统做的一样就好了.
- 设计很乱,旧系统本身就比较混乱,虽然是平台转移,但是那些旧系统的问题应该同时的解决掉,而不是堆积到新系统.诸如,数据库设计的问题.
- 没有java经验,针对我来说.第一次接手这样的东西,很多时间是知道如何做,却不知java里面是如何实现的.
项目其实算是重新编写了,前些日子宰infoq上看了一篇文章,讲的就是代码重新编写好不好.我经历的两个项目都可以算是从旧系统到新系统的转变了.第一个是彻底的把旧系统推翻,重新的需求分析,底层设计.现在的这个,目的很明确,就是和旧系统保持一致.有一点我很疑惑的就是,后一种的代码重写有什么意思?如果旧系统已经很完美的话,这样的做法纯粹是浪费精力.觉得第一种方式还是比较好.而且相对而言成本会比较低,不用到处束手束脚的了.
项目的成败从一开始就可以看出来的,靠后期的修修补补是做不出来好的项目的.挺简单的一个道理,但是做起来很复杂,自己不负责这些事情,所以不多说了.在公司做项目简直是在碰运气,如果运气好了,碰上好的设计,一切顺利,不然,呵呵.
前面有很多坑,慢慢来了.