可能使用Getters和Setter将对象添加到List?

时间:2013-11-11 12:18:59

标签: c# .net getter-setter

我想从以下方法返回数据库列表。我想使用getter和setter,以便在使用此类库并调用DatabaseName方法时可以更改ConnectionStringretrieveDatabaseList()。我不能使用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;
    }
}

1 个答案:

答案 0 :(得分:2)

使用C#功能属性,您可以轻松地进行geting和设置类字段的值。不确定这是否正是你想要的,但这应该会给你一个关于它们如何工作的提示。

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