c# - C# - 使用字段和方法,无需每次都重复对象名称
问题描述
我刚开始学习C#。我遇到的一个常见问题是,当我使用对象实例并想要访问/分配多个字段时,我每次都必须调用对象名称。我来自 Delphi 的背景,我想知道 C# 是否有类似于with..do
block 的东西。
例如。假设我有School
带字段的类Name
和Address
在 Delphi 中,我可以执行以下操作
mySchool = School.new();
with mySchool do
begin
Name := 'School Name';
Address := 'School Address';
end
编译器会理解这一点Name
并在对象Address
上被调用。mySchool
而在 C# 中,我必须执行以下操作
mySchool = new School();
mySchool.Name = "School Name";
mySchool.Address = "School Address";
我只是想知道是否有一种类似于上面的 Delphi 的语言结构可以消除我重复输入对象名称的需要。
我知道在这个例子中是相当微不足道的,我宁愿使用参数化构造函数,但我的问题是,当我用同一个对象做很多事情并且拥有这样的语言结构时,我会节省相当多的打字时间。
另外,虽然我对命名空间有模糊的了解,但我的理解是您不能将对象/变量用作命名空间。如果我错了,请纠正我。
解决方案
在这种情况下,您可以使用对象初始化器:
var mySchool = new School
{
Name = "School Name",
Address = "School Address"
};
推荐阅读
- php - .htaccess 使用 RewriteRule 将 url 重定向到 PHP
- python - Pandas:如何使用新列制作数据透视表?
- sql-server - CTE Row_Number 分区不会删除所有重复项
- prolog - 超出 Prolog 堆栈限制
- java - 使用 java.util.Random 类生成确认码
- sql - 如何在水平输出中查询 Hive 表的垂直列
- java - 使用 SQL 标准 JPA Spring 显示列表的元素
- php - OM\Db::query(string $statement) 的声明必须与 PDO::query 兼容
- android - 同一设备的前置摄像头和后置摄像头可以支持不同的硬件级别吗?
- apache - IIS 10/Apache 问题 - web.config