【发布时间】:2016-08-29 16:57:38
【问题描述】:
我有一个有 2 个私有方法的类。在方法 A 中,我定义了一个变量,比如 varA 计数。在方法 B 中,需要再次使用 varA。
然而,varA 就像临时计数器一样,似乎不应该被视为类的属性。
那么如何在私有方法 B 中访问 varA?是否可以在私有方法 A 中将 varA 定义为 public?
public class MyClass{
private void methodA(){
private int varA;
varA = GetSingleValesFromDB();
.......
}
private void methodB(){
//here, I need to access varA again
//but I don't want to define varA as attribute of MyClass
}
}
编辑:
课程背景:
实际上方法A和方法B可以独立运行。但就在这一次我运行方法 A 然后方法 B。我必须使用 GetSingleValesFromDB() 在方法 B 中再次获取值,就像我在方法 A 中所做的那样。
但是,即使方法 A 和方法 B 的执行之间存在时间间隔,从 DB 获取的值也不会改变,所以我不想在方法 B 中再次运行 GetSingleValesFromDB() ,这会消耗 DB 和连接资源。相反,我更喜欢重用 varA 的值。
【问题讨论】:
-
请在这里分享您的代码
-
任何方法,无论其保护级别如何,都不会以合理的方式公开其任何 本地 变量,从而为其赋予保护级别。跨度>
-
为什么不应该在方法之外定义?如果您在方法内声明变量,则范围将在方法内。
-
您不会在方法中声明公共或私有任何内容,您只声明局部变量。您可以在外部声明变量,但是可以将其设为公共或私有。
-
您编辑的代码没有编译。正如我所说,局部变量没有保护级别,所以
private int varA;中的methodA是一个错误。而不是这个破碎的提议,也许更详细地充实你想要解决的问题,以及为什么你认为共享局部变量是解决方案的一部分。
标签: c# private public access-modifiers