CSharp 11
Raw string literals
Lar deg lage strings uten å måtte escape. F.eks. med indentering og quotes.
string longMessage = """
This is a long message.
It has several lines.
Some are indented
more than others.
Some should start at the first column.
Some have "quoted text" in them.
""";
Rider støtter også at man setter lang via kommentar for å få formateringshjelp.
//lang=JSON
var json = """
{
"name": "Ole",
"age": 28
}
"""
StringSyntax
privat void ExecuteQuery([StringSyntax("SQL")] string query){}
private void DoSomeWork()
{
ExecuteQuery("SELECT * from TABLE")
}
Required keyword
Om man før ønsket at en property skulle være påbudt så måtte man lage en kontruktør, ala:
public class Foo{
public string Bar {get; set;}
public Foo(string bar){
Bar = bar;
}
}
I c# 11 kan man bruke required keywordet isteden, slik at man heller kan bruke den mye bedre syntaxen object initializor
public class Foo{
public required string Bar {get; init;}
}
Usage
new Foo{}//Compiler ERROR
new Foo{ Bar="asd" }// ✅