Code: Select all
latest
Ich erhalte den Fehler in dieser Codezeile:
Code: Select all
var provValue = registryValue.Split(',').Reverse();
Void kann einer implizit typisierten Variablen nicht zugewiesen werden
Hier ist der vollständige Code:
Code: Select all
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;
}
Visual Studio-Version: 18.1.1
Mobile version