How to achieve multi-line strings in C#; an alternative to VB's XML Literals?

后端 未结 3 1971
你的背包
你的背包 2021-01-13 00:03

I had a project in vb.net that used XML Literals to process large blocks of SQL like so:

Dim SQL As String =  Use test

alter table BarFoo alter col         


        
3条回答
  •  陌清茗
    陌清茗 (楼主)
    2021-01-13 00:30

    First – Use multiline string literals like

    String sql = @"Use test
    alter table BarFoo alter column CouponName nvarchar(328)
    alter table Foo alter column IngredientName nvarchar(328)
    alter table Bar alter column IngredientShortDescription nvarchar(328)
    alter table FooBar alter column ItemName nvarchar(328)"
    
    • note that all line breaks inside the string and whitespace at the beginning of each line is retained

     
    Second – Let string interpolation work for you if you need any parametrization of string:

    String databaseName = "test"
    String tableName = "BarFoo"
    
    String sql = @"Use \{databaseName}
    alter table \{tablaName} alter column CouponName nvarchar(328)"
    
    • no more puzzles like String.Format("Use {0}; alter table {1}", databaseName, tableName)

     
    Third – Visual Basic already has multiline string literals, too. No more XML workarounds please.
    In VB, use

    Dim sql As String = "Use test
    
    alter table BarFoo alter column CouponName nvarchar(328)
    alter table Foo alter column IngredientName nvarchar(328)
    alter table Bar alter column IngredientShortDescription nvarchar(328)
    alter table FooBar alter column ItemName nvarchar(328)"
    
    'and with interpolated strings:
    Dim when As String = "since Visual Studio 2015"
    Dim note As String = $"String interpolation works {when}, see this VB-specific syntax!"
    

提交回复
热议问题