Ada*_*Er8 4 c# python string-interpolation
从 Python 3.8 开始,可以在 f 字符串中使用自记录表达式,如下所示:
>>> variable=5
>>> print(f'{variable=}')
variable=5
Run Code Online (Sandbox Code Playgroud)
C# 中有等效的功能吗?
不,但你可以使用InterpolatedStringHandlerandCallerArgumentExpression自己编写:
[InterpolatedStringHandler]
public ref struct SelfDocumentingStringHandler
{
StringBuilder builder;
public SelfDocumentingStringHandler(int literalLength, int formattedCount)
{
builder = new StringBuilder(literalLength);
}
public void AppendLiteral(string s)
{
builder.Append(s);
}
public void AppendFormatted<T>(T t, [CallerArgumentExpression(nameof(t))] string member = "")
{
builder.Append(member + "=");
builder.Append(t);
}
internal string GetFormattedText() => builder.ToString();
}
void Print(ref SelfDocumentingStringHandler stringHandler)
{
Console.WriteLine(stringHandler.GetFormattedText());
}
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样使用它:
var variable = 5;
Print($"{variable}"); // prints: variable=5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1017 次 |
| 最近记录: |