我想做类似下面的事情
using (MyClass)
{
.a = a;
.title = sz;
.abc = paramEFG
etc = .lol;
}
这可能在C#中吗?显然不是那种语法,但可能是另一个关键词?
答案 0 :(得分:3)
嗯,据我所知,并非完全以这种方式,尽管对象初始化器接近:
var foo = new MyClass
{
a = a,
title = sz,
abc = paramEFG
};
但显然,它们只能在调用构造函数后直接创建对象和初始化属性,而不是像VB的With
那样(它几乎都是你在问题中描述的语法)。
答案 1 :(得分:1)
不,这种语言不存在。您可能正在考虑使用 with 关键字的JavaScript或Visual Basic?
答案 2 :(得分:1)
C#不支持。
VB使用With
关键字。
如果MyClass很长(例如this.Controls[0].Controls[3].Font
),您可以为其指定一个名称较短的局部变量。
如果它是一个长类名(例如Dictionary<RichTextBox, List<GroupPanel>>
),您可以使用using
语句创建一个别名,如下所示:
using MyThingy = System.Collections.Generic.Dictionary<System.Windows.Forms.RichTextBox, System.Collections.Generic.List<System.Windows.Forms.GroupPanel>>;
答案 3 :(得分:0)
你不能在C#中做到这一点,它更像是VB的东西。但是,您可以设计一个流畅的界面:
var c = MyClass.Build()
.SetA(a)
.SetTitle(sz);
.SetParam(paramEFG);
或者您可以使用C#3语法并执行
var c = new MyClass() {
A = a,
Title = sz
}
答案 4 :(得分:0)
看起来你要求的功能就像VB.Net的With运算符。
With someClass
.Name = "foo"
.IntValue = 42
End With
如果是这样,在C#中不可能做到这一点。