使用插值为属性赋予默认值

时间:2019-05-17 07:24:07

标签: c# ado.net

我正在尝试连接SQL。没问题。

var newComments = [Comment]()
var indexPathsToAdd = [IndexPath]()

// ...

newComments.append(currentComment)

indexPathsToAdd.append(IndexPath(row: self.comments.count + newComments.count - 1, section: 1))

if newComments.count % 50 == 0 {
    DispatchQueue.main.async {
        self.myTableView.beginUpdates()
        self.comments.append(contentsOf:newComments)
        self.myTableView.insertRows(at: indexPathsToAdd, with: .fade)
        self.myTableView.endUpdates()
    }
    newComments.removeAll()
    indexPathsToAdd.removeAll()
}

但是我想使用public string ConnectionString { get; set; } = @"Data Source= DESKTOP-DKQQPCF\SQLEXPRESS; Initial Catalog = ACADEMY; Integrated Security = SSPI;"; ConnectionString提供默认值

它告诉我错误。

这是代码示例

INTERPOLATION

注意:我从private SQLConfig conf = new SQLConfig(); public string ConnectionString { get; set; } = $@"Data Source= {conf.DataSource}; Initial Catalog = {conf.DatabaseName}; Integrated Security = {conf.Security};"; 文件中提取了DatabaseName, DataSource and Security。我必须使用JSON

为属性设置默认值

2 个答案:

答案 0 :(得分:0)

我建议您使用System.Data.SqlClient.SqlConnectionStringBuilder添加创建这样的连接字符串。也可以用字符串插值来完成,但是我认为这不太优雅。

答案 1 :(得分:0)

您可以使用空合并(假设SQLConfig的所有属性都是字符串):

public string ConnectionString { get; set; } = 
                $@"Data Source= {(conf.DataSource ?? "DefaultDatasource")}; 
                   Initial Catalog = {(conf.DatabaseName ?? "DefaultCatalog")}; 
                   Integrated Security = {(conf.Security ?? "true")};";