C# 中是否有 Visual Basic 'With' 模拟?[复制]
-
26-09-2019 - |
题
网络
With Alpha.Beta.Gama.Eta.Zeta
a = .ZetaPropertyA
b = .ZetaPropertyB
c = .ZetaPropertyC
End With
C#?
a = Alpha.Beta.Gama.Eta.Zeta.ZetaPropertyA
b = Alpha.Beta.Gama.Eta.Zeta.ZetaPropertyB
c = Alpha.Beta.Gama.Eta.Zeta.ZetaPropertyC
解决方案
不,不存在。
虽然你可以缩短一点:
var z = Alpha.Beta.Gama.Eta.Zeta;
z.ZetaPropertyA = a;
z.ZetaPropertyB = b;
z.ZetaPropertyC = c;
为其他情况下:
var z = Alpha.Beta.Gama.Eta.Zeta;
a = z.ZetaPropertyA;
b = z.ZetaPropertyB;
c = z.ZetaPropertyC;
这应该已经是明显虽然;)
其他提示
有关新的实例可以使用对象初始化:
Alpa.Beta.Gama.Eta = new Zeta
{
ZetaPropertyA = a,
ZetaPropertyB = b,
ZetaPropertyC = c
}
没有,没有什么象C#中的with
构建体。
没有. 。解决方法是使用(短)局部变量名而不是 with
. 。每行添加几个字符,但您最终仍然会得到完全合格的引用。
对不起,C#不具有。初始化@Jakub对象暗示可能提供一种替代的,或者:
如果您自己设计Zeta
,你可以使用 流畅的界面 设计模式。这将允许你这样做:
Alpha.Beta.Gama.Eta.Zeta
.SetPropertyA(A)
.SetPropertyB(B)
.SetPropertyC(C);
这接近你想要什么,在很多其他地方工作的费用。请记住,一个流畅的界面并不总是最好的设计选择。
不隶属于 StackOverflow