gpt4 book ai didi

c# - 使用整个类作为参数 - 好的做法?

转载 作者:太空狗 更新时间:2023-10-29 22:12:26 24 4
gpt4 key购买 nike

假设一个名为“Place”的类存储位置和相关细节:

class Place
{
string Name;
string Location;
// etc...
}

稍后我们会填充多达 80 个不同城镇的名称和详细信息。因此,我们将这些 Towns 以数字形式存储在一个数组中:

class Setup
{
public static GetTowns
{
for (int i = 1; i <= numberOfTowns; i++)
{
Town[i] = new Place(name, location);
}
// more code...
}
// more methods...
}

要访问特定城镇及其数据,我们将城镇本身作为参数传递并接收它:

public static void DescribeTown(Place Town)
{
// example method from some other class
Console.WriteLine("Shipping to {0}.", Town.Name);
}

其他方法需要访问多个城镇,或所有城镇。然后我们可以将整个Town数组作为参数传入:

public static void ListAllTowns(Place[] Town)
{
Console.WriteLine("Our Beloved Clients:");
foreach (Place here in Town)
{
Console.WriteLine("{0} in {1}", here.Name, here.Location);
// Various other operations requiring info about the Towns
}
}

完整引用,C# 2.0,声明如下

Parameters are variables that receive the value of the arguments passed into the method when it is called.

这似乎是说类的每个实例以及涉及的所有数据在每次调用时都被传递到 ListAllTowns 中。这对我来说听起来很浪费,但真的是这样吗?

(出于概念验证的原因,此示例大大得到了简化,但方法需要读/写权限和多个城镇之间的比较。)

最佳答案

没有什么浪费的。您没有传递所有项目的副本,您只是创建一个数组,然后将该数组的引用传递给 ListAllTowns 方法(数组是引用类型)。

您正在以正确的方式(其中之一)做事。

关于c# - 使用整个类作为参数 - 好的做法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12058918/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com