我当前正在做的工作需要我将VB.Net代码转换为C#。 我一直在主要使用“构建器模式”,这使我转换了许多函数,这些函数是一个函数的一次调用。 SomeFunction(var1,var2,var3)转换为:
Dim Director As New SomeDirector
With Director
.SomeProperty = SomeValue
.SomeProperty2 = SomeValue2
End With
我担心的是,这将创建5-6行代码,而不是一行代码。我可以用一种更简洁的方式来做到这一点吗?还是最好有5-6行代码?
谢谢!
答案 0 :(得分:1)
如上所述,您可以使用对象初始化在C#中执行类似的操作:
var Director = new SomeDirector { SomeProperty = SomeValue, SomeProperty2 = SomeValue2 };
这不需要您编写显式构造函数。
答案 1 :(得分:0)
一种简洁的编写方法是使用SomeDirector类中的构造函数:
public SomeDirector(int value1, int value2)
{
this.SomeProperty = value1;
this.SomeProperty2 = value2;
}
然后您的代码示例变为:
var director = new SomeDirector(someValue, someValue2);
这里的想法是,尽管构造函数看起来有些long,但它却藏在类中,并且调用它的代码简洁明了(并且您不能忘记一个重要的属性)。
如果您想知道,没有C#等效于VB的with
关键字。
答案 2 :(得分:0)
更多关于您的问题的一般答案: 从理论上讲,您拥有多少行代码无关紧要,而要执行多少资源却无关紧要。但是,最佳实践也与人类可读性有关,因此它实际上取决于情况。您是否需要针对性能或进一步开发进行优化。在大多数情况下,作为开发人员,这比没有完整洞察力的其他人更了解。