﻿# V3138\. String literal contains potential interpolated expression\.

Анализатор обнаружил строку, которая могла бы содержать интерполированное выражение, но символ интерполяции '$' у литерала отсутствует\.

Рассмотрим фрагмент кода:

```cpp
string test = "someText";
....
Console.WriteLine("{test}");
```

Из\-за пропущенного знака '$' перед объявлением строки в консоль будет выведено имя переменной\. Корректная запись будет выглядеть так:

```cpp
string test = "someText";
....
Console.WriteLine($"{test}");
```

Также потенциальными ошибками считаются строки, содержащие выражения:

```cpp
int a = 1;
int b = 1;
string test = "{a:c} test";
string test1 = "{a+b} test1 {{{ a + b }}}";
```

Исключениями считаются строковые литералы, передаваемые в методы в качестве аргумента, когда другими аргументами этих методов являются переменные, содержащиеся в этом литерале\.

```cpp
string test1 = ReplaceCustom("someText {test}", "{test}", test);
```

В этом случае выражение в литерале часто бывает меткой для замены на значение переменной, также передаваемой в метод\.