[英]public static property won't show in intellisense
我正在慢慢學習C#,並對代碼有些困惑。 我這里有我的課程的簡化版本,用於數據庫連接設置
public class DatabaseSettings
{
private static string connectionString = string.Empty;
public static string ConnectionString
{
get
{
return connectionString;
}
private set
{
connectionString = value;
}
}
public bool TestConnection()
{
bool _returnVal = false;
string _connectionString = String.Format("Data Source={0};Persist Security Info=False", databaseLocation);
using (SqlCeConnection connection = new SqlCeConnection(_connectionString))
{
try
{
connection.Open();
connectionString = _connectionString; // sets the value of the connection string here
_returnVal = true;
}
catch (SqlCeException e)
{
// other codes here
_returnVal = false;
}
finally
{
connection.Close();
}
}
return _returnVal;
}
// other methods here
}
現在在我的Main Class
,我很困惑這里發生的事情。 當我嘗試此代碼時:
string _databaseLocation = "database path";
DatabaseSettings _dbaseSetting = new DatabaseSettings(_databaseLocation, true);
_dbaseSetting.TestConnection();
string newConnectionString = _dbaseSetting.ConnectionString;
// ^ i got an error here
// Member 'SQLCE_Sample.ClassList.DatabaseSettings.ConnectionString.get'
// cannot be accessed with an instance reference;
// qualify it with a type name instead
下面的這個工作正常,沒有錯誤,但是問題是我得到了一個空字符串:
string _databaseLocation = "database path";
DatabaseSettings _dbaseSetting = new DatabaseSettings(_databaseLocation, true);
string newConnectionString = DatabaseSettings.ConnectionString;
我真正想要的是創建一個具有public method
的類,該public method
測試從應用程序到數據庫的連接 。 該方法內部包含設置連接字符串值的語法。 然后,我還需要一個property
,該property
無需實例化類即可檢索連接字符串的值 ( 這就是我添加static
關鍵字的原因 )。 我怎么可能呢?
看來您要訪問(靜態地)由類的實例設置的屬性的值。 因此,您所需要做的就是監聽編譯器錯誤-將屬性作為靜態引用而不是實例引用進行訪問。 更改:
string newConnectionString = _dbaseSetting.ConnectionString;
至:
string newConnectionString = DatabaseSettings.ConnectionString;
當然,在嘗試像這樣靜態訪問TestConnection
之前,您需要確保在實例上調用TestConnection
。 否則, ConnectionString
將為null。
您的公共靜態變量和靜態屬性具有相同的名稱。 重命名它們之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.