在同一类中的对象,最少的资源情况



假设以下情况:

一个人在方法中创建对象的实例,此实例由同一类中的另一个方法使用。

哪个从机器中获取最少的资源?

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()类时,还要记住您在做什么。如果您正在做一些需要时间的复杂事情,而您通常不仅在一个空白中使用该类,而是每次都要声明和初始化它。

相关内容

最新更新