所以,我不希望这成为 C# 和 VB.NET 开发人员之间的一场口水战。这纯粹是从开发部门的角度来看。多年来,我们一直是一家 VB.NET 公司,但这主要取决于我们聘用的人员。该要求最近已被搁置,因为我们招募了 2 名专攻 C# 的人。在为这家公司转换为 VB.NET 之前,我曾经是一名 C++/C# 人员。
那么,无论是在雇佣基础上还是在可维护性基础上,对于必须处理这个问题的每个人来说:你如何处理 future 选择的标准化语言?我倾向于插入 C#,因为这将使这里有 3 个可靠的 C# 开发人员。但只是好奇大家对此有何看法。
最佳答案
作为在混合商店工作的人,同时使用两者并不难。但是,拥有一个标准可以更轻松地来回移动代码是有帮助的。以下是您的标准的一些想法:
对于 VB 开发人员:
- 禁止在新代码中使用旧的 vb6 风格的函数。我说的是字符串和其他函数(Len、InStr、Replace、UBound 等)。转换运算符(CInt、Cstr 等)仍然可以,因为它们是语言运算符,但更喜欢
Convert.To___()
函数,以便轻松地与 C# 进行转换。 - 需要
Option Strict
和Option Explicit
。通过将其作为要求而不是强烈建议,您将放弃一些动态类型的酷炫,但保持代码与 C# 的对等是值得的。 - 标准化“+”与“&”的字符串连接(如果您尚未使用 StringBuilder)
- 比
And
和Or
更喜欢AndAlso
和OrElse
对于 C# 开发人员:
- 不允许仅大小写不同的名称。这尤其包括与类型名称基本相同的名称 (
SomeType sometype = ...
)。告诉他们改用 _ 前缀(而不是“m_”)。无论如何你都应该这样做,但这在混合商店中尤为重要,因为该代码将更难在 VB 中使用。
对于两者:
- 不允许 ArrayLists 和其他非泛型集合(因为它们不仅是邪恶的,而且 VB 和 C# 处理所有必需的转换非常不同,即使由于 CType 而使用严格选项)
如果这样做,两组代码之间将几乎没有真正的区别,并且您已经迈出了第一步,教 VB 开发人员像 C# 开发人员一样思考。
关于c# - 如何制定标准(C# 与 VB.NET),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1522422/