我有一个类文件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
文件中的Password
类文件中的class1.cs
和JobSeekerBO.cs
我也尝试将该变量公开为
public string _username = string.Empty;
public string _password = string.Empty;
我们可以在file1.aspx.cs
文件
因此,请告诉我如何将一个.cs
文件的变量和方法访问另一个.cs
文件。
答案 0 :(得分:6)
您无法访问课程外的_username
和_password
,因为默认情况下他们为private。这意味着它们只能在课堂上访问。但您拥有公共属性,这些字段包含sets
和gets
值。所以你应该使用那些公共属性。
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
中的类字段here的更多信息编辑:查看代码后。
您正在尝试将公共属性值设置在错误的位置。你不能在那里做。你应该在一个方法中做到这一点(即使你的构造函数很好)。
public class MailRepositary
{
JobSeekerBO objBO = new JobSeekerBO();
public MailRepositary()
{
objBo.UserName="works from constructor";
}
public void SomeMethod()
{
objBo.UserName="works from method also";
}
}
答案 1 :(得分:1)
班级 JobSeekerBO 可能不属于namespace
!
JobSeekerBO 类必须与您访问它的namespace
相同。
如果 JobSeekerBO 在另一个或namespace
之内,您必须包含包含namespace
的{{1}}或您必须在同一JobSeekerBO
!
答案 2 :(得分:1)
您应该能够通过这样做来获取或设置用户名和密码。
var objBO = new JobSeekerBO();
var username = objBo.UserName;
var password = objBo.Password;
“后端”变量不需要公开,这些变量可以是私有的。
答案 3 :(得分:1)
有几种情况您将无法做到:
请验证它们。
答案 4 :(得分:0)
如果是静态类:
它们只包含静态成员。
无法实例化它们。
例如
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;