C# - 在不重复对象名称的情况下使用字段和方法

9 浏览
0 Comments

C# - 在不重复对象名称的情况下使用字段和方法

我刚开始学习C#。我经常遇到的一个问题是当我在使用对象实例并且想要访问/分配多个字段时,我必须每次都调用对象名称。我来自Delphi的背景,我想知道C#是否有类似于with..do块的东西。

例如。假设我有一个具有字段NameAddressSchool类。

在Delphi中,我可以这样做:

mySchool = School.new();
with mySchool do
begin
 Name := '学校名称';
 Address := '学校地址';
end

编译器会理解NameAddress是在mySchool对象上调用的。

而在C#中,我必须这样做:

mySchool = new School();
mySchool.Name = "学校名称";
mySchool.Address = "学校地址";

我只是想知道是否有类似于上述Delphi的语言结构,可以消除我重复键入对象名称的需要。

我知道在这个例子中这样做相当琐碎,我应该使用带参数的构造函数,但我的问题是当我对同一个对象进行多项操作时,拥有这样的语言结构会节省我相当多的输入。

此外,我对命名空间有一些模糊的认识,尽管我理解你不能使用对象/变量作为命名空间。如果我错了,请纠正我。

0
0 Comments

问题的出现原因是,使用对象初始化器仍然需要每次手动输入属性的名称。解决方法是使用构造函数来实例化对象,并在构造函数中设置属性的值。以下是使用构造函数来解决问题的代码示例:

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;

}

}

通过使用构造函数,在实例化对象时可以直接传入属性的值,无需重复输入对象名称。这样可以更方便地使用字段和方法,提高代码的可读性和可维护性。

0
0 Comments

问题的原因是如果想要在多个连续的操作中重复使用对象,使用对象初始化器的方法就不再适用。

解决方法是使用对象初始化器的同时,将对象赋值给一个变量,然后使用该变量来访问对象的字段和方法。这样就不需要在每次使用对象时都重复写对象的名称。

下面是修改后的代码示例:

var mySchool = new School
{
    Name = "School Name",
    Address = "School Address"
};
// 使用变量访问对象的字段和方法
var schoolName = mySchool.Name;
var schoolAddress = mySchool.Address;
// 在多个连续的操作中重复使用对象
Console.WriteLine("School Name: " + schoolName);
Console.WriteLine("School Address: " + schoolAddress);
// 可以继续使用对象进行其他操作
mySchool.DoSomething();

0