假设以下情况:
一个人在方法中创建对象的实例,此实例由同一类中的另一个方法使用。
哪个从机器中获取最少的资源?
class processor
{
private User user;
private void iDoSomethingWithUser(string name, int age)
{
user = new User();
user.name = name;
user.age = age
setUserActive();
}
private void setUserActive()
{
user.isActive = true;
}
}
或
class processor
{
private void iDoSomethingWithUser(string name, int age)
{
User user = new User();
user.name = name;
user.age = age
setUserActive(user);
}
private void setUserActive(User user)
{
user.isActive = true;
}
}
在第一个解决方案中,您将 user
声明为全局变量,并且可以在整个类中使用,而在第二个解决方案中,您仅将其声明为void,并且在void finish之后,该变量将被处置。/p>
无论如何,采用两种方式都没有太大好处:
class processor
{
private User user;
public processor()
{
user = new User();
}
private void UseSameVarName()
{
int user = 0; //it will not allow you to use `user` as another var name since you already have that name as `User` var
}
}
,如果您在空隙内声明变量,它将允许您使用相同的名称
class processor
{
private void CheckUser()
{
User user = new User();
if(user.Name == ....)
//other stuffs
}
private void GetUser()
{
int user = 0; //it will allow you to use user as variable name since you do not have it declared (you had it inside other void but it is declared only for that void)
}
}
在创建User()
类时,还要记住您在做什么。如果您正在做一些需要时间的复杂事情,而您通常不仅在一个空白中使用该类,而是每次都要声明和初始化它。