用另一个相关问题编辑了这个问题请帮助:我可以对一个类的几种方法使用相同的变量名吗?

问题描述

| 谢谢大家的回答。我遇到的一个问题是,当我在帮助台和IT方法中打印每个变量的值时,它不会打印\“ help \”,\“ hellp123 \”和\“ Welcome Helpdesk!\”。打印\“ admin \”,\“ admin \”和\“ Welcome \”。对于IT方法,情况相同。
public class Login
{
    public string[] array = new string[3];
    public string UserName;
    public string Password;
    public string Message;
}

public Login
{
   UserName = array[0] = \"admin\";
   Password = array[1] = \"admin\"; 
   Message = array[2] = \"Welcome\";

}

public void Helpdesk
{
    UserName = \"help\";
    Password = \"help123\";
    Message = \"Welcome Helpdesk!\";
    Console.WriteLine(UserName); //still prints admin
    Console.WriteLine(Password); // still prints admin
    Console.WriteLine(Message); // still prints Welcome
}
public void IT
{
    UserName = \"it\";
    Password = \"Pa$$w0rd\";
    Message = \"Welcome IT!\";

}
我可以使用相同的变量名:方法的用户名,密码和消息:同一类“登录”的帮助台和IT,如下所示吗?     公共类登录     {         public string [] array = new string [3];         公用字符串UserName;         公共字符串密码;         公共字符串消息;     }
public Login
{
   UserName = array[0] = \"admin\";
   Password = array[1] = \"admin\"; 
   Message = array[2] = \"Welcome\";  
}

public void Helpdesk
{
    UserName = \"help\";
    Password = \"help123\";
    Message = \"Welcome Helpdesk!\";
}
public void IT
{
    UserName = \"it\";
    Password = \"Pa$$w0rd\";
    Message = \"Welcome IT!\";

}
    

解决方法

        您谈论的变量是类中的字段。仅限于该类。如果创建具有相同名称但不在同一类内的新变量(如上述操作),则允许这样做。如果在您的班级内部执行此操作,它将使该字段蒙上阴影,这被认为是不好的做法。 注意:如果仅从类内部分配字段(就像您可能在问题中暗示的那样,但是代码不完整),则只需更改其值即可。
public class Login
{
    public string Message;
    public string Name;


    public void Test()
    {
       Message =  \"Welcome\";  // changes field,same as this.Message = ...
       var Name = \"Me\";       // does not change field,hides field Name
    }

}
    ,        您可以,但是必须记住,这些变量在类级别的范围内。当一个方法更改其中任何一个时,其他方法也将使用新值。     ,        如果您打算更改类变量的值,那么可以。     ,        是的,您绝对可以这样做。变量将在类级别声明的范围内使用,它们可在该类的方法中使用。此外,如果在与类中声明的变量同名的方法中声明变量,则该方法变量将优先于该方法完成。     ,        
Yes
,您可以将变量声明为类成员变量,因此可以在类中的任何方法中进行访问。您甚至可以在类之外访问它,因为它们是
public
,但是如果不是
public and static
,则需要一个类的实例。 为了回答您编辑过的问题,您提供的代码甚至没有编译,但是假设您要构造一个类
public class Login
{
    public string[] array = new string[3];
    public string UserName;
    public string Password;
    public string Message;


public Login()
{
   UserName = array[0] = \"admin\";
   Password = array[1] = \"admin\"; 
   Message = array[2] = \"Welcome\";

}

public void Helpdesk()
{
    UserName = \"help\";
    Password = \"help123\";
    Message = \"Welcome Helpdesk!\";
    Console.WriteLine(UserName); //still prints admin
    Console.WriteLine(Password); // still prints admin
    Console.WriteLine(Message); // still prints Welcome
}
public void IT()
{
    UserName = \"it\";
    Password = \"Pa$$w0rd\";
    Message = \"Welcome IT!\";

}
}
在主要方法中
 Login login = new Login();
    login.Helpdesk();
    Console.ReadKey();
它将输出
help
help 123
Welcome Helpdisk!
并不是
admin
admin
Welcome
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...