C# 可以使用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;

我想从下面的方法返回数据库列表。我想使用getter和setter,以便在使用此类库并调用
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的意图,但不知怎么的,这段代码感觉是对的。很好的封装。