KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

请问一道简单的VB题……

[ 7796 查看 / 25 回复 ]

回复: 请问一道简单的VB题……

原帖由 cheong00 于 2007-9-25 22:37:00 发表
我會這樣寫:

======

Private Sub Command1_Click()
Text4.Text = CStr((CSng(Text1.Text) + CSng(Text2.Text) + CSng(Text3.Text)) / 3)
End Sub

======

我不明白為什麼不教用 a = CSng(Text1.Text) 即把型別轉換都寫進去.
沒那概念而習慣用Varient的話, 以後學其他Language時會很麻煩的...

EDIT: 即使繼續寫VB也很麻煩的... 好像我這樣用一行式寫而不做型別轉換的話, 如果Text1到Text3的內容分別是2, 3, 4的話, Text4的內容就會是(234 / 3) = 78而不是3了


=v=
果然还是没教好啊...
其实我是怕教的东西多会让人混淆,所以就沿着她的程序这么改下来了...
单从VB的特点来讲,字符串和数字类型确实能直接转换,而且在“+”和“&”下面会发生不同种类的类型变换

数字 + 数字 -> 数字(相加)
文字列 + 数字 -> 数字(只要文字列能变换成数字,相加)
文字列 + 文字列 -> 文字列(文字列串联)

数字 & 数字 -> 两个数字的文字列?(这个倒不是很清楚)
数字 & 文字列 -> 数字转换成文字列串联成一个新的文字列
文字列 & 文字列 -> 串联起来的文字列

大致感觉就是这样,所以cheong00兄如果不用转换的话,会把三个数字连起来。

接下来说说个人观点:(就当我今天半夜没事做,一个人自言自语好了orz)
其实我是写C/C++出身的,当然对C/C++以及后来接触的内嵌ASM,还有风格与C/C++相同的C#特别热爱
不单单是因为他们是强类型语言,还有就是对底层有着非常好的控制能力

目前因为做的项目范围比较广,什么语言都有所接触
首先说说VB吧...做过一个项目VB6.0 VB.NET ASP混合的系统...系统逻辑不难,难得就是各种语言之间的接口调用
VB是一种比较简单的语言,主要编写界面,事件驱动,只要写程序片断而不用考虑各种事件之间的影响。
对于新手容易入门,但VB写的时候最好还是把强制类型声明选项打开,有时候编译器帮你掩盖错误不是一件好事情。
相反,根据编译器的提示,自己修改的错误或问题点越多,你能学到的也就也多
VB.NET是微软基于.NET体系,发展出来的一种符合VB语法的语言。其实应该说它和.NET程序的写法类似,
和VB类似仅仅是因为它继承了VB的各种旧的特性,不过在实际运用中,除非是移植的代码,否则不应该用这些旧特性,
因为微软为了在新的.NET体系上实现这些旧的功能,导致内部的代码的效率有所降低。(最明显的就是On Error GoTo 这个语法)

对于VB而言,个人不是很喜欢,毕竟写起来和C/C++完全不一样,没手感了orz
不过VB有一个优点就是COM的调用是非常便利的。


这半年又做了Java的项目...Struts框架=v=
怎么说呢,对于Java这语言来说,确实和C/C++非常像,但还是有几个弱点:
个人认为的第一个弱点本来应该是属于Java的优点——没指针
可能因为我对细节控制特别在意吧,没指针让我在许多处理上都要花费更大的代价去完成一项很简单的工作
这里引出来的问题就是类型转换,Java是没有无符号数的,曾经碰到一个要测试字符编码的问题,
非得把文字的符号数转成非符号数才能进行判断。(如果在C/C++中只要一个类型转换就行了,其实实际代码什么事情都没有做,
因为指针还是一个,只是编译器换了一种类型去解释它)
另一个还是老问题...速度太慢...昨天开了两个Eclipse同时跑高负荷的程序的时候,想停下来怎么也停不下来,死在那里最后竟然自动重启了orz

对于Java,Eclipse提供的IDE环境还是非常不错的,即时的编译错误提示,编译错误仍能调试,CheckStyle和FindBugs的语法和格式的检查
不过对于Java的速度来说,实在有点不爽orz


个人最喜欢的还是C/C++和Win32 API的组合,挖掘操作系统的秘密还是作为一个热爱写程序的程序员的终极目标啊~~~~(远目
2007/2/20凌晨01:14:45,获得称号「大骗子」
orz

QQ群 宅在日本 74481628
宅女腐女招募中
http://www.otkjp.cn/
TOP

回复: 请问一道简单的VB题……

嗯, 有寫C++/C#的話應該知道當 a + b而a和b是不同型別的數字的話, 結果的型別會是a和b之間最大容量的型別. 這也叫implicit casting.

不過呢, 我還是比較習慣寫成 (typemax)a + (typemax)b, 把需要的轉換explicit地寫出來. 這樣在找bug的時候會快/容易一些找到型別轉換時的錯誤.

目前的目標是養成/改進寫程式碼的習慣, 以減少不小心而型成的bug和加快除錯速度為優先. 包括固定的block indention習慣, 寫比較式c==(a+b)寫成(a+b)==c, 還有即使編譯器會按operator priority計算但寫的時候決不省略括號等...

原帖由 王二 于 2007-9-26 2:45:00 发表
个人最喜欢的还是C/C++和Win32 API的组合,挖掘操作系统的秘密还是作为一个热爱写程序的程序员的终极目标啊~~~~(远目

這我很贊同. 我也是對這方面比較有興趣的. :D
TOP

回复: 请问一道简单的VB题……

原帖由 cheong00 于 2007-9-26 14:21:00 发表
嗯, 有寫C++/C#的話應該知道當 a + b而a和b是不同型別的數字的話, 結果的型別會是a和b之間最大容量的型別. 這也叫implicit casting.

不過呢, 我還是比較習慣寫成 (typemax)a + (typemax)b, 把需要的轉換explicit地......


个人觉得这样显式转换画蛇添足,
double dSum = (double)nNum1 + dNum2 显然没有必要且看起来怪异……

OS么……
目前期待C++0x boost TR1中

却问何日君再来...
TOP

回复:请问一道简单的VB题……


个人最喜欢的还是C/C++和Win32 API的组合,挖掘操作系统的秘密还是作为一个热爱写程序的程序员的终极目标啊~~~~(远目


先把WRK(Windows Research Kernel)看一遍再来说这个吧…………
TOP

回复:请问一道简单的VB题……

居然连回了2个………………orz。。。。
最后编辑粘土火星 最后编辑于 2007-10-05 14:16:19
AJI,舰狗
TOP

回复:请问一道简单的VB题……

The Windows Research Kernel (WRK) packages core Microsoft Windows XP x64/Server 2003 SP1 kernel source code with an environment for building and testing experimental versions of the Windows kernel for use in teaching and research. The WRK includes source for processes, threads, LPC, virtual memory, scheduler, object manager, I/O manager, synchronization, worker threads, kernel heap manager, and other core NTOS functionality.

The WRK is useful in design projects that allow your students to explore operating system (OS) principles using the Windows kernel sources. It enables advanced teaching and research by facilitating building experiments and projects based on modifying the Windows kernel, as well as by promoting better understanding of the Windows architecture and implementation.
AJI,舰狗
TOP