我刚刚开始学习 C#。我遇到的一个常见问题是,当我使用对象实例并想要访问/分配多个字段时,我每次都必须调用对象名称。我来自 Delphi 的背景,我想知道 C# 是否有类似于with..doblock 的东西。例如。假设我有School带字段的类Name和Address在 Delphi 中,我可以执行以下操作mySchool = School.new();with mySchool dobegin Name := 'School Name'; Address := 'School Address';end编译器会理解Name并Address在mySchool对象上被调用。而在 C# 中,我必须执行以下操作mySchool = new School();mySchool.Name = "School Name";mySchool.Address = "School Address";我只是想知道是否有一种类似于上面的 Delphi 的语言结构可以消除我重复输入对象名称的需要。我知道在这个例子中很简单,我应该使用参数化构造函数,但我的问题是当我用同一个对象做很多事情并且拥有这样的语言构造时,我会节省很多打字的时间。另外,我对命名空间有模糊的了解,但我的理解是您不能将对象/变量用作命名空间。如果我错了,请纠正我。
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
在这种情况下,您可以使用对象初始值设定项:
var mySchool = new School
{
Name = "School Name",
Address = "School Address"
};
精慕HU
TA贡献1845条经验 获得超8个赞
我认为所选的答案并没有给你你所要求的。
通过使用对象初始值设定项,您仍然必须每次都手动键入属性的名称。
构造函数是您正在寻找的:
class Program
{
static void Main(string[] args)
{
School school1 = new School("School Name", "School Address");
}
}
public class School
{
public string Name { get; set; }
public string Address { get; set; }
public School(string name, string address)
{
this.Name = name;
this.Address = address;
}
}
- 2 回答
- 0 关注
- 203 浏览
添加回答
举报
0/150
提交
取消