如何使class属性readonly?

时间:2014-06-20 07:04:30

标签: c# properties readonly

让我们看下面的例子:

public Data()
{
   ConnectionString = DefaultConnectionString;
}

public Data(string connectionString)
{
   ConnectionString = connectionString;
}

public string DefaultConnectionString
{
   get
   {
       return System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnectionString"].ConnectionString;
   }
}

public string ConnectionString { get; set; }

这里我正在使用基于连接字符串或默认连接字符串处理sql连接和操作的类。 ConnectionString属性,我在逻辑上将其用作readonly,即仅从constructor设置。但在这种情况下,属性可以从任何其他地方设置。
因此有任何优雅的方式来定义这样的属性吗?

1 个答案:

答案 0 :(得分:3)

将setter设为私有

public string ConnectionString { get; private set; }

这样,财产只能私下设置并公开阅读