Dan:你将运算符重载和以前弄混了,那可是C++的重要组成部分。在用C++编程时我用过它,我总是觉得它使得事情变得更复杂了,而其本身并不需要这样复杂。比如对于加号或减号,你必须注意变量是什么类型。“那些变量是对象吗?”它们是对象。那就继续找真正的方法,重载即在此发生。但如果并没有重载,那你就搁浅了。
Norris:是的。这有一个此问题的例子:我正在阅读Programming C#(Second Edition),里面说到:“如果你在C#中这样做,而你想别人能在VB中使用这个库,你就得用其它的方法,其效果是相同的。”那是因为VB,甚至新的VB.NET并不支持运算符重载。如果真的有人要使用你的库,而VB.NET并不会支持,那可真是一个问题。
Builder.com:所以,你们说微软向C#中加入了与VB.NET以及其它.NET语言不兼容的特性?
Norris:是的。它们好像都遵循公共语言运行时(CLR),但是C#却有它自己的运算符重载,在VB.NET中又不能这样做。你能够使用那些对象是因为它在CLR中,VB.NET允许你这么做,但是你在这儿却无法使用那个库,那个功能,它不会起作用。
Dan:你的C#函数是这样的吗?
Norris:噢,是的。
Dan:我正在读.NET Development for Java Programmers,里面有一章比较了Java和C#,但却没有涵盖这样与VB有关的问题。
Builder.com:既然你们都是Java程序员。那你们为什么要学习C#呢?
Norris:这并不是因为我们是Java程序员,而是因为我们是开曼群岛路易斯维尔的Java程序员,在路易斯维尔可没有那么多Java职位。
[笑]
Builder.com:但是除了仅仅因为“其他人都用它”和“工作的需要”以外,应该有一个合理的解释。
Kevin:这取决于我们看待它的方式,因为我们是Web程序员。我们已经选择了这行。因此我对学习与Web开发有关的任何工具都感兴趣,包括C#、.NET、 Java、JSP等等。如果我离开这里,我希望到另一个Web开发职位上,因此我要使自己更有竞争力,那就至少要熟悉C#,.NET和其他的东西。
