Невозможно присвоить void неявно типизированной переменной в Visual Studio 2026.C#

Место общения программистов C#
Ответить
Anonymous
 Невозможно присвоить void неявно типизированной переменной в Visual Studio 2026.

Сообщение Anonymous »

У меня есть приведенный ниже код, который не выдает никаких ошибок сборки в Visual Studio 2022, но я получаю следующую ошибку сборки в Visual Studio 2026. Как это исправить или это ошибка в Visual Studio 2026?
Я получаю сообщение об ошибке в этой строке кода:

Код: Выделить всё

var provValue = registryValue.Split(',').Reverse();
Сообщение об ошибке:

Невозможно присвоить void неявно типизированной переменной.

Вот полный код:

Код: Выделить всё

string registryValue = "";
int registryType = 0;

if (valueData[1].StartsWith("\""))
{
registryValue = valueData[1].Trim('"');
registryType = (int)RegistryValueKind.String;
}
else
{
var provVal = valueData[1].Split(new[] { ':' }, 2);

switch (provVal[0])
{
case "dword":
registryType = (int)RegistryValueKind.DWord;
break;

case "hex(7)":
registryType = (int)RegistryValueKind.MultiString;
break;

case "hex(b)":
registryType = (int)RegistryValueKind.QWord;
break;

case "hex(2)":
registryType = (int)RegistryValueKind.ExpandString;
break;

case "hex":
registryType = (int)RegistryValueKind.Binary;
break;

default:
throw new Exception($"Invalid Registry type '{provVal[0]}'!");
}

while (provVal[1].EndsWith("\\"))
{
i++;
provVal[1] = provVal[1].TrimEnd('\\');
provVal[1] += fileLine[i].Trim();
}

registryValue = provVal[1];
}

switch ((RegistryValueKind)registryType)
{
case RegistryValueKind.Binary:
byte[] binValue = ConvertRegData(registryValue);
childKey.SetValue(valueData[0], binValue, (RegistryValueKind)registryType);
break;

case RegistryValueKind.ExpandString:
byte[] expByte = ConvertRegData(registryValue);
string provExpString = Encoding.ASCII.GetString(expByte);
provExpString = provExpString
.Replace("\0\0", "/r/n")
.Replace("\0", "")
.Replace("/r/n", "\0");
childKey.SetValue(valueData[0], provExpString, (RegistryValueKind)registryType);
break;

case RegistryValueKind.MultiString:
byte[] multiByte = ConvertRegData(registryValue);
string provMultString = Encoding.ASCII.GetString(multiByte);
provMultString = provMultString.Replace("\0\0", "/r/n").Replace("\0", "");
var multiString = provMultString
.Split(new string[] { "/r/n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries)
.ToArray();
childKey.SetValue(valueData[0], multiString, (RegistryValueKind)registryType);
break;

case RegistryValueKind.DWord:
int dValue = (int)Convert.ToUInt32(registryValue, 16);
childKey.SetValue(valueData[0], dValue, (RegistryValueKind)registryType);
break;

case RegistryValueKind.QWord:
var provValue = registryValue.Split(',').Reverse();
registryValue = string.Join("", provValue);
long qValue = (long)Convert.ToUInt64(registryValue, 16);
childKey.SetValue(valueData[0], qValue, (RegistryValueKind)registryType);
break;

default:
childKey.SetValue(valueData[0], registryValue, (RegistryValueKind)registryType);
break;
}
Целевая платформа: .NET 4.7.2

Версия Visual Studio: 18.1.1


Подробнее здесь: https://stackoverflow.com/questions/798 ... tudio-2026
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»