关于C#和VB.net相似/差异的访谈问题

时间:2008-08-18 15:11:41

标签: c# vb.net

我几年来一直是VB.net开发人员,但我目前正在申请一些使用C#的公司。我甚至被告知至少有一家公司不想要VB.net开发人员。

我一直在网上试图找到两者之间的真正差异,并询问了crackoverflow。唯一的主要区别是一些语法差异对我来说是微不足道的,因为我也是一个Java开发人员。

当面试官告诉我他们正在寻找C#开发人员或类似的问题时,对他们有什么好的回应?

8 个答案:

答案 0 :(得分:9)

我不得不采访几个C#职位的人,这是我对VB.Net开发人员面试C#职位的一般建议:

  • 确保您已清楚自己一直在使用VB.Net。这看起来很明显,但显然不是(根据我的经验)。
  • 尽可能尝试提供代码示例。我见过VB程序员编写的一些可怕的VB.Net(和C#),他们在过渡到.Net时似乎没有多少学到的东西。
  • 如果被问及,可以在面试中写下C#。我知道两者之间没有太多真正的区别,但我不想让你付钱学习新的语法。

对于您的具体问题:我之前已经问过这类问题,我想知道的是底层系统和框架是如何相同的。如果可能的话,谈谈垃圾收集,IDisposable,终结器,不安全代码块的危险,堆栈与堆等等。所有这些东西都表明你真正理解.Net框架的复杂性。对或错,VB的遗产带来了对低级编程和一般窗口缺乏理解的期望(具有讽刺意味的是,c ++开发人员会拥有c#开发人员......等等)。

最后,您如何构建自己的体验可以创造一个与众不同的世界。如果你将自己定位为.Net开发人员,而不是VB.Net或C#,那么这种愚蠢的,伪宗教的玩笑者可能无法进入对话。这当然要求你在面试时真正了解VB.Net和C#,但无论如何这都是一个好的政策。

事情的真相是,如果你发现面试你的人只是因为你以前在VB.Net中开发而把你写下来,那么它很可能不会成为你想要工作的地方。 / p>

答案 1 :(得分:3)

有些差异(比语法更重要)有时会让我感到困惑:

  • VB.NET没有匿名代理
  • 不安全的代码块不在VB.NET中

答案 2 :(得分:3)

我喜欢C#死,但我羡慕VB.NET的可选参数。 C#中的办公自动化非常非常痛苦。

答案 3 :(得分:2)

我认为真相将会出现:

我是一名软件开发人员,语言的语法是这个难题的最后一部分。通过雇用我,你会得到一个具有解决问题和逻辑经验的人。我对.NET环境,CLR和相关的Windows堆栈(包括SQL和Windows服务器)很有经验。我不知道C#语法,但是,我习惯于面向对象的方法,我将在几周内完全掌握语法的细节,没有问题。您可以从我的代码示例中看到我是一位经验丰富的开发人员,我向您保证,过渡将是无缝的。我已经开始学习这门语言,到目前为止我没有遇到任何问题。

答案 4 :(得分:2)

@DAC - VB现在(在.net3.5中)支持lambdas:

Function(x) x.ToString()

在一次采访中我会说理解CLR以及代码真正做的是什么是重要的,并且你很乐意编写代码(假设你是)。

答案 5 :(得分:2)

我也是死亡的C#feller,但差异不仅仅是语法。有些地方VB赢了HANDS

  1. 可选参数
  2. 延迟装订
  3. 使用C#中的COM可能会非常令人沮丧。 (这并不是说不可能!)

答案 6 :(得分:1)

如实?如果你也是一名Java开发人员,我会带领你。具有一定.NET经验的Java开发人员通常会比具有Java经验的VB开发人员给人留下更好的印象。如果您可以回答有关.NET和Java之间差异的问题,那么您应该处于良好状态。

我还建议您尽快学习C#语法。如果您对VB和Java有经验,则不会花费很长时间。

很多开发人员都遇到过VB和使用它的人的问题。无论你是否有效,你都必须处理这个现实。

答案 7 :(得分:0)

VB或C#都只是语法不同但如果你应用逻辑方式是相同的。