我想从下面的方法返回数据库列表。我想使用 getter 和 setter,以便在使用此类库并调用 retrieveDatabaseList()
方法时可以更改DatabaseName
和ConnectionString
。 我不能使用 getDatabase()
方法,因为它只返回数据库的一个实例。我不能使用 set
方法,因为它是无效的。有没有办法在 List.Add() 方法中使用 getter 和 setter?
class SelectDatabase
{
private string DatabaseName;
private string ConnectionString;
public SelectDatabase(string DBNAME, string CONNSTRING){
DatabaseName = DBNAME;
ConnectionString = CONNSTRING;
}
public List<SelectDatabase> retrieveDatabaseList()
{
List<SelectDatabase> databaseList = new List<SelectDatabase>();
databaseList.Add(new SelectDatabase(getDatabaseName(),""));
databaseList.Add( new SelectDatabase(getDatabaseName(), "" ));
databaseList.Add( new SelectDatabase(getDatabaseName(), "" ));
return databaseList;
}
public string getDatabaseName() {
return this.DatabaseName;
}
public void setDatabaseName(string dbName) {
this.DatabaseName = dbName;
}
public string getConnectionString()
{
return this.ConnectionString;
}
public void setConnectionString( string connectionString )
{
this.ConnectionString = connectionString;
}
}
使用 C# 功能"属性",可以非常轻松地获取和设置类字段的值。不确定这是否正是您想要的,但这应该会给您一个关于它们如何工作的提示。
public class Database
{
public string Name { get; set; }
public string ConnectionString { get; set; }
}
public class Databases
{
public ICollection<Database> DatabaseList { get; private set; }
public void AddDatabase(Database db)
{
DatabaseList.Add(db);
}
public void RemoveDatabase(string dbName)
{
DatabaseList.Remove(DatabaseList.Single(db => db.Name == dbName));
}
}
您还应该阅读属性,例如在此站点上:http://msdn.microsoft.com/en-us/library/vstudio/x9fsa0sw.aspx