C# 可以使用getter和setter将对象添加到列表中吗?
我想从下面的方法返回数据库列表。我想使用getter和setter,以便在使用此类库并调用C# 可以使用getter和setter将对象添加到列表中吗?,c#,.net,getter-setter,C#,.net,Getter Setter,我想从下面的方法返回数据库列表。我想使用getter和setter,以便在使用此类库并调用retrieveDatabaseList()方法时可以更改DatabaseName和ConnectionString。我不能使用getDatabase()方法,因为它只返回一个数据库实例。我不能使用set方法,因为它是无效的。无法将getter和setter与List.Add()方法一起使用吗 class SelectDatabase { private string DatabaseName;
retrieveDatabaseList()
方法时可以更改DatabaseName
和ConnectionString
。我不能使用getDatabase()
方法,因为它只返回一个数据库实例。我不能使用set
方法,因为它是无效的。无法将getter和setter与List.Add()方法一起使用吗
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;
}
}
class选择数据库
{
私有字符串数据库名;
私有字符串连接字符串;
public SelectDatabase(字符串DBNAME、字符串CONNSTRING){
DatabaseName=DBNAME;
ConnectionString=CONNSTRING;
}
公共列表检索DatabaseList()
{
列表数据库列表=新列表();
添加(新建SelectDatabase(getDatabaseName(),“”);
添加(新建SelectDatabase(getDatabaseName(),“”);
添加(新建SelectDatabase(getDatabaseName(),“”);
返回数据库列表;
}
公共字符串getDatabaseName(){
返回this.DatabaseName;
}
public void setDatabaseName(字符串dbName){
this.DatabaseName=dbName;
}
公共字符串getConnectionString()
{
返回此.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));
}
}
公共类数据库
{
公共字符串名称{get;set;}
公共字符串连接字符串{get;set;}
}
公共类数据库
{
公共ICollection数据库列表{get;private set;}
公共数据库(数据库数据库数据库)
{
DatabaseList.Add(db);
}
public void RemoveDatabase(字符串dbName)
{
Remove(DatabaseList.Single(db=>db.Name==dbName));
}
}
您还应该阅读有关属性的内容,例如在本网站上:我不太确定您在问什么,但您应该了解C#中的内容,它消除了对getter setter方法的需要。目前还不清楚您想要实现什么。到目前为止,工作流程是1。使用数据库名称和连接字符串创建对象。2.调用
retrieveDatabaseList
,它使用数据库名称(而不是连接字符串)创建同一类的三个以上实例,然后返回该列表。你想达到什么目的?为什么让一切都静止?这只会使单元测试更加困难。如果没有静力学,会是+1。哎呀,我不知道我为什么这么做。固定的!这更好:)我不太理解OP的意图,但不知怎么的,这段代码感觉是对的。很好的封装。