0

我有一个类文件 JobSeekerBO 它有变量

   string _username = string.Empty;
   string _password = string.Empty;

我将值设置如下

public string Username
{
    get { return _username; }
    set { _username = value; }
}

public string Password
{
    get { return _password; }
    set { _password = value; }
}

但问题是我在另一个类文件中访问的那个变量 class1.cs我创建了那个类文件的对象

JobSeekerBO objBO = new JobSeekerBO();

但我无法从我的文件中访问Username和类文件Passwordclass1.csJobSeekerBO.cs

我还尝试按照以下方式公开该变量

public string _username = string.Empty;
public string _password = string.Empty;

没有公共访问修饰符的相同类文件变量我们可以在file1.aspx.cs文件中访问

所以请告诉我如何将一个文件的变量和方法访问.cs到另一个.cs文件。

页面代码

4

5 回答 5

6

您不能在课堂外访问_username,因为默认情况下_password它们是私有的。这意味着它们只能在类的主体内访问。但是你有这些字段的公共属性setsgets值。所以你应该使用那些公共属性。

JobSeekerBO objBO = new JobSeekerBO();
objBo.Username="someusername";
objBo.Password="myPassword";

假设你的班级看起来像这样

public class JobSeekerBO
{ 
   string _username = string.Empty;
   string _password= string.Empty;      

   public string Username
   {
        get { return _username; }
        set { _username = value; }
   }        
   public string Password
   {
        get { return _password; }
        set { _password = value; }
   }    
}

通常,您应该仅将字段用于具有私有或受保护可访问性的变量。您的类向客户端代码公开的数据应通过方法、属性和索引器提供。

更多关于msdn 中的字段

编辑:查看您的代码后。

您试图将 Public 属性值设置在错误的位置。你不能在那里做。你应该用一种方法来做(即使在你的构造函数中也可以)。

public class MailRepositary
{
  JobSeekerBO objBO = new JobSeekerBO();
  public MailRepositary()
  {
      objBo.UserName="works from constructor";
  }
  public void SomeMethod()
  {
      objBo.UserName="works from method also";
  }
}
于 2012-08-27T12:30:18.953 回答
1

JobSeekerBO类可能已经退出了namespace

JobSeekerBO类必须与您访问它的位置相同。namespace

如果JobSeekerBO在另一个或外面,则namespace必须包含namespacethat contains,JobSeekerBO否则您必须将JobSeekerBO写在同一个中namespace

于 2012-08-27T12:30:58.473 回答
1

您应该能够通过简单地这样做来获取或设置用户名和密码。

var objBO = new JobSeekerBO();
var username = objBo.UserName;
var password = objBo.Password;

“后端”变量不需要公开,它们可以是私有的。

于 2012-08-27T12:31:19.720 回答
1

在少数情况下您将无法做到:

  1. 命名空间没有被正确引用
  2. 您指定的类(带有属性)可以设置为内部或受保护的内部,如果是这样,请在两个类具有不同的名称空间时将其提及为公共

请验证它们。

于 2012-08-27T12:41:44.833 回答
0

如果是静态类:

  1. 它们只包含静态成员。

  2. 它们不能被实例化。

例如。

JobSeekerBO.UserName;   

//accessing the non-public member of the class with the public property

如果不是静态类,那么它应该有public类,那么它必须通过启动对象来访问。

JobSeekerBO objBO = new JobSeekerBO();
objBo.Username = "XXXXXXX";
objBo.Password = "XXXXXXX";

或者

可能存在命名空间问题。就像该类在命名空间内一样,因此要访问它,您必须引用它。

using XYZ;
于 2012-08-27T12:42:42.007 回答