静态值与传递参数

时间:2012-06-07 02:00:59

标签: c#

我有一种情况,我必须在课堂上下两个独立的课程中传递List<>。现在我主要使用参数传递列表,所以所有3个类都获取列表。我应该使用静态列表而不是在整个类中传递List来简化代码Class23.ListObjects.Add(),然后在操作完成后释放静态值,以便下一个操作以空List开始。现在感觉参数变得越来越多,如果列表具有正确的值,忘记将列表传递给下一个类,我会感到困惑,等等。您如何看待?

3 个答案:

答案 0 :(得分:4)

我建议您创建一个新类,表示由各个类执行的组合操作(如果您愿意,可以使用“上下文”类)。执行操作所需的值可以作为该上下文中的实例变量以及执行工作时使用的类的实例保存。

这样,你就可以避免传递内容(代码发展,这可能会有点难看),同时避免使用“全局”变量。数据完全符合它所需的范围,并在整个操作完成时进行处理。

答案 1 :(得分:1)

在编码实践中,使用静态或全局变量并且传递参数被认为是好的。

答案 2 :(得分:0)

如果使用静态参数,如果在代码中的多个位置使用这些函数,则存在获取数据损坏的风险,尤其是涉及线程时。

例如,假设A类需要使用您的静态列表中的函数。在这些函数完成之前,B类也尝试使用它们,导致列表从两个调用中获取数据,因为在这两种情况下都使用相同的静态列表。