![](/img/trans.png)
[英]c# - How to access a variable from outside its class in a method in some other class?
[英]Can't access Class in some other class in c#?
我有一個班級文件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();
但是我無法從JobSeekerBO.cs
文件訪問class1.cs
類文件中的Username
和Password
我也嘗試按照以下方式公開該變量
public string _username = string.Empty;
public string _password = string.Empty;
沒有公共訪問修飾符的相同類文件變量,我們可以在file1.aspx.cs
文件中訪問
因此,請告訴我如何將一個.cs
文件的變量和方法訪問到另一個.cs
文件。
您無法在課程外訪問_username
和_password
因為默認情況下它們是私有的。 這意味着它們只能在類的主體內訪問。 但是您具有在這些字段上sets
和gets
值的Public屬性 。 因此,您應該使用那些公共屬性。
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 class MailRepositary
{
JobSeekerBO objBO = new JobSeekerBO();
public MailRepositary()
{
objBo.UserName="works from constructor";
}
public void SomeMethod()
{
objBo.UserName="works from method also";
}
}
JobSeekerBO類可能不在namespace
!
JobSeekerBO類必須與您訪問它的位置在相同的namespace
中。
如果JobSeekerBO在另一個或不在namespace
,則必須包括包含JobSeekerBO
的namespace
,或者必須在相同的namespace
編寫JobSeekerBO !
這樣,您應該就能獲取或設置用戶名和密碼。
var objBO = new JobSeekerBO();
var username = objBo.UserName;
var password = objBo.Password;
不需要將“后端”變量公開,它們可以是私有的。
在幾種情況下您將無法執行以下操作:
請驗證他們。
如果它是靜態類:
它們僅包含靜態成員。
它們無法實例化。
例如。
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.