| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2641 人关注过本帖
标题:[讨论]初学C#,与VB相比,不爽的地方
取消只看楼主 加入收藏
soulfox
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-6
收藏
 问题点数:0 回复次数:9 
[讨论]初学C#,与VB相比,不爽的地方
VB2005有了命名空间后,C#除了使用人数多之外,相对VB还有什么优势,请懂的人给偶解疑一下

这几天在看C#,有几点东西与各位讨论一下
1.以前用VB写个变量,习惯上会第一字母大写,比如Dim SoulFox as string
然后在用时直接全用小写soulfox写程序,一按回车一句完后,
如果soulfox这个变量是拼写正确的话,会自动变成了SoulFox,
一直以来都利用这个功能检查变量的拼写.
C#大小写的区分,有人说是优点,相对偶以前从VB走过来的来说,反而成了缺点.

对此点,修正一下,是在C#和VB的变量都遵守命名约定的前提下


2.代码要求严格很多,同时也增加了很多倍的书写量,包括{}等的使用
书写的代码量比VB大了很多,通常一个语句比羊肉串还要长
 感觉一程序用VB写的话,书写量会比C#少1/3

暂时这么多了

[此贴子已经被作者于2006-10-8 16:54:11编辑过]

搜索更多相关主题的帖子: 变量 初学 SoulFox soulfox 空间 
2006-10-08 11:28
soulfox
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-6
收藏
得分:0 
对于第一点
偶一直搞不懂变量区分大小写有什么意义
知道这种说法是以前从C++开始的
但一直都没人在使用过程中或相关的言论中
觉得大小写的区别是重要的
好象都是跟书本说的风一样说重要
久而成了习惯吧
2006-10-08 11:34
soulfox
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-6
收藏
得分:0 
我用VB把大小当作系统一种自动拼写检查的方法
转到了C#很不惯
2006-10-08 13:00
soulfox
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-6
收藏
得分:0 
以下是引用dhddna在2006-10-8 13:13:02的发言:

那就改被!你那是个坏习惯!

我就不明白这个习惯为什么是坏的
区分大小写有什么实际用处
到现在为止没有任何一个人说得出来

2006-10-08 14:49
soulfox
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-6
收藏
得分:0 
以下是引用marer在2006-10-8 15:50:57的发言:

例如:变量str和变量Str还有STR等是不一样的,而VB中如何区分这些?变量的命名规则中一般常量要全大写,所以看到STR就知道是个常量,而str应该是一个局部变量,而Str应该是个类名,由此可见你平时写代码应该不太注意书写规范。这个习惯不好

没人会在一段代码内或者一个函数内
会这样定义字母相同变量的吧
这样做除了给自己找麻烦外,没有任何好处的
包括楼上那位用getpost做例子的朋友
况且我就算有VB也会遵守这位朋友所说的规则
这个跟大小写好象没有直接的联系吧
(说起来,我以前过级还是用C过的)

[此贴子已经被作者于2006-10-8 16:07:32编辑过]

2006-10-08 16:05
soulfox
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-6
收藏
得分:0 
以下是引用chenjin145在2006-10-8 16:07:23的发言:


做过大项目你就晓得了

取名字也是学问

原来是版主呀
我觉得大项目这个问题更严重了
为了程序运行的安全性
根本就不应该出现相同字母的变量
比如不论soulfox和Soulfox,或者SOULfox就应该强制代表同一个变量
不然在编程过程中,一个不小心头脑发热引用错了
可能排错排到你哭呀

2006-10-08 16:12
soulfox
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-6
收藏
得分:0 
对{}的使用
我觉得这个不是简洁的问题
相反我在学C的时候就已经发觉
这种形式只会让人在编程时神经崩紧
经常一大堆{},包括条件,循环嵌套的时候
会让人查错时一个个找个眼花
而用VB时不会有这种感觉
要知道区别end if和loop或end select总比区分两个}}符号好认


你看一下这个

if (a > 0)
{
if (b>0)
{
switch (c)
{
..................
}
}

}


if a > 0 Then
if b > 0 then
select case c
............
end select
end if
End If
我觉得后者在查错时,明显比前者来得直观
2006-10-08 16:35
soulfox
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-6
收藏
得分:0 
先谢一个楼上的了
提供了另一种方法给我
2006-10-08 16:45
soulfox
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-6
收藏
得分:0 
以下是引用Theron在2006-10-8 16:20:55的发言:
关于变量名大小写问题, 楼主很郁闷是吧, 看来楼主是没有规范变量名的习惯.
代码变量名的命名习惯有多种, 一般是Pascal法和Camel法, 还是著名的 "匈牙利"法.

一份高质量的代码, 不仅仅表现在她的效率和构思上, 也体现在代码的风格(包括变量名命名)上.

C/C++命名是很有艺术和讲究的, 如:

g_length;
s_length;
sName;
GetName;
length;
fullName;
SIZE

一般的C/C++程序员都能看懂上面的那么多的变量都是什么东东.
g_length;//这是全局变量
s_length;//这是静态变量
sName;//这个是字符串型的变量,采用著名的 "匈牙利"法
GetName;//这应该是函数
length;//这是一般变量
fullName;//一般变量, 采用Camel 命名方法
SIZE;//宏


源代码命名可以看出一个程序的素质, 一份好的代码, 命名规范, 那么代码的可读性就比较高, 如果你随便命名, 那看得人一般来回的上下翻代码, 看你的变量是什么意思.



总的来说, 变量名区分大小写是有很大好处的, 很明显的地方是提高代码的可读性.

chenjin145版主和Theron所提到的只是命名规范方面
不是区分大小写的本质问题
实际上很多VB的程序员也遵守这种规范
原因是因为这种规范的确有用


我只是觉得在一个函数内把Soulfox和soulfox分别代表两个不同意思
只会增加编程者的负担
而且我相信在座这么多人,没人会出现 if (Soulfox>soulfox)这种自找麻烦写法的吧

更正一下,我所说的区分大小写,是在遵守命名约定的前提下
这种区分是不爽的

2006-10-08 16:53
soulfox
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2006-10-6
收藏
得分:0 
以下是引用Smiling在2006-10-8 16:58:03的发言:
各有各自的好处,运用时间常了久习惯了。VB能自动调整字符的大小这点我也很喜欢,还有就是VB每个过程和方法有开始和结束,C#里的那些{}看多了确实眼睛累,而且有时候容易把层次看错

这个在VB中,一直是我用来检查变量是否拼写正确的方法
有时候一个变量代表的意思太多,单词之间难免有缩写
象 intErrTestVerCode这种变量,有时写作
intErrTestVerifyCode并不奇怪
VB中如果拼错或者少字,会直接提示出错的
正确的话大小写会自动变

不过这好象是编程环境的原因吧,好象跟大小写没什么直接关系,呵呵
只能说C#的编程环境做不到这一点(事实上是因为区分大小写原因,没办法做)

2006-10-08 17:13
快速回复:[讨论]初学C#,与VB相比,不爽的地方
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032765 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved