Инвариантный метод ожидает параметр FormattableString
типа .В вашем случае, параметр $"{this.x}" + $"{this.y}"
становится "string" + "string'
, что приведет к выводу типа string
.Вот почему вы получаете сообщение об ошибке компиляции, поскольку Invariant
ожидает FormattableString
, а не string
.
Вы должны попробовать это для однострочного текста -
public string X { get; set; } = "This is X";
public string Y { get; set; } = "This is Y";
public string Z { get; set; } = "This is Z";
string build = Invariant($"{this.x} {this.y} {this.z}");
Вывод-
Это X Это Y Это Z
И для реализации multiline
интерполяции вы можете построить FormattableString, как показано ниже, а затем использовать Invarient.
FormattableString fs = $@"{this.X}
{this.Y}
{this.Z}";
string build = Invariant(fs);
Выход -
Это X
Это Y
Это Z