为什么C#和JAVA都是定义和实现混杂在一起,而不象DELPHI和C++一样分开清晰

happyezhu 2002-04-18 07:42:51
为什么不能做成这样
public class TCai{
public void A1;
}

public void TCai.A1{
...
}

而非要是这样呢,有什么好处
public class TCai{
public void A1{
...
}
}
...全文
60 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
realdreamer 2002-04-19
  • 打赏
  • 举报
回复
分开清晰吗? 分开还显麻烦,累人。

C#与 JAVA 都是一个文件,并且都实现了自描述。

哦呵,微软专家也在,偶就。。。。
joy_wind 2002-04-19
  • 打赏
  • 举报
回复
我一直用java。不过我觉得定义和实现相分离可能要更好一点。这样才体现了“面向接口编程”的特点。一个软件模块的客户模块只关心你提供的接口,它对你的实现不关心,所以分离的结果是使模块间的结构更清晰。
happyezhu 2002-04-19
  • 打赏
  • 举报
回复
我一向比较讨厌多开窗口,太乱,尤其跟踪时没办法,开Watch,Thread,CPU等等,
就连我用Delphi,我也是就开代码区,主菜单窗口,属性窗口。
在DELPHI中,我想看一个类中到底有什么属性,事件,方法,一目了然,然后关注某一个方法,就跳转就行,很方便。
我看JAVA的代码的时候,有时一个类有上千行代码,我想看个全貌都不行,就得用类信息窗口看。
定义与实现相分离,这样就可以既可看到森林,又可看见树木,可上可下。可是C#和JAVA都是一眼就让我看见树木,想看森林就得换套家伙。DELPHI一个代码区全部搞定,很舒服,BORLAND很照顾程序员的。
我也不喜欢C++的.h文件,定义和实现干吗放两个文件来回跳,又多一个窗口
你的工作台清洁,你的头脑也就清晰,你试试你身边都是乱纸和灰尘,你会有心情工作吗
不过这也没什么大碍,我用JAVA,C++,DELPHI,C#都无所谓,只是那个舒服并且是客户要求的我就用那个。可是JAVA,C#让我用起来不舒服,不是现在是客户体验时代,咱程序员也得体验一回呢吧?
DBXP 2002-04-19
  • 打赏
  • 举报
回复

我想这也是微软的垄断手段吧!
因为如果你使用vs.net就不会感到这有什么不好!

以上存属私人见解,不负任何法律责任!
qqchen79 2002-04-19
  • 打赏
  • 举报
回复
Ok, 如果说分出Header是使接口于是先分离的话,private members为什么要出现在Header里呢?
假如一个C++类,其方法定义编译到了.obj/lib/dll里,然后我需要用这个类,作为一种Hack手段,我可以轻易的把.h文件里所有的private成员改成public,然后就可以随意访问了,这是定义与实现分离/结构更清晰的表现?
wenzm 2002-04-19
  • 打赏
  • 举报
回复
清晰!

类的架够(设计)是系统分析人员的事情
而实现是编码人员的事情
另外同上!
wenzm 2002-04-19
  • 打赏
  • 举报
回复

我觉得“类”的设计(结构)应该和实现是分开的,前者是分析设计人员做的,后者是编码人员做的!
qqchen79 2002-04-18
  • 打赏
  • 举报
回复
header文件(.h)在C++里扮演的就是MetaData的角色。
如果你的.cpp里要引用一个类,那么你就必须包含该类的定义.h文件。这种分割定义的方法是由C++缺乏二进制级别的描述信息决定的——当然,更深层次的原因的C++的可移植性。

.NET的Assembly里有二进制级别的类型定义信息(MetaData),编译器可以很容易的取得信息从而进行编译,所以就不需要单独的.h文件了。
sunbn 2002-04-18
  • 打赏
  • 举报
回复
不同意帖主的观点,向C++那样太罗嗦了。

acptvc 2002-04-18
  • 打赏
  • 举报
回复
感谢您使用微软产品!

这样做也正是C#设计的初衷,使得代码清晰,便于管理。没有了C++中的一大堆头文件。

此外,.NET中的assembly实现了自描述性。各种信息都包含在assembly的manifest中,这使得对它的应用带来了莫大的方便,不用再像C++中,又要头文件,又要lib文件。

总之,代码简洁,便于管理是C#的一大特点。

-微软全球技术中心 VC技术支持

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
acptvc 2002-04-18
  • 打赏
  • 举报
回复
感谢您使用微软产品!

这样做也正是C#设计的初衷,使得代码清晰,便于管理。没有了C++中的一大堆头文件。

此外,.NET中的assembly实现了自描述性。各种信息都包含在assembly的manifest中,这使得对它的应用带来了莫大的方便,不用再像C++中,又要头文件,又要lib文件。

总之,代码简洁,便于管理是C#的一大特点。

-微软全球技术中心 VC技术支持

本贴子以“现状”提供且没有任何担保,同时也没有授予任何权利。具体事项可参见使用条款(http://support.microsoft.com/directory/worldwide/zh-cn/community/terms_chs.asp)。
为了为您创建更好的讨论环境,请参加我们的用户满意度调查(http://support.microsoft.com/directory/worldwide/zh-cn/community/survey.asp?key=(S,49854782))。
rbjojo 2002-04-18
  • 打赏
  • 举报
回复
c#的写法比较清晰阿
至少不用到处找
呵呵
我看c#的教材把这作为一个进步
xdev 2002-04-18
  • 打赏
  • 举报
回复
当然是 申明和实现在一起, 清晰明了, 容易管理啊

做c++要先定义在实现, 维护两个地方

要是atl的话, 还是3处呢, 烦人啊
aimstrong 2002-04-18
  • 打赏
  • 举报
回复
应该是第二种写法编译实现更容易吧
delphi,c++允许那样是因为它们的定义和实现可以分别写在两个文件里,个人认为
CheerDesiger 2002-04-18
  • 打赏
  • 举报
回复
方便啊﹐如果不是﹐你解釋Delphi那樣有什么好處啊﹐不覺得太累了嗎

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧