不能用c#的值初始化引用变量



出现此错误不能用值初始化按引用变量我对c#相当陌生,只是想尝试修复一个废弃的开源项目。

代码如下:

private bool CertificateHandler(bool valueExist)
{
if (!CertMaker.rootCertExists() && !CertMaker.createRootCert() || (CertMaker.rootCertIsTrusted() ? 1 : (CertMaker.trustRootCert() ? 1 : 0)) == 0)
return false;
// ISSUE: explicit reference operation
ref string local1 = @this.fiddlerCertInfos._fiddlerCert;
if (local1 == null)
local1 = FiddlerApplication.Prefs.GetStringPref("fiddler.certmaker.bc.cert", (string) null);
// ISSUE: explicit reference operation
ref string local2 = @this._fiddlerCertInfos._privateKey;
if (local2 == null)
local2 = FiddlerApplication.Prefs.GetStringPref("fiddler.certmaker.bc.key", (string) null);
if (!valueExist)
this.appRegistry.UpdateRegistry(new List<RegistryInfo>()
{
new RegistryInfo()
{
Name = "FiddlerCert",
Value = (object) this._fiddlerCertInfos._fiddlerCert,
RegistryValueKind = RegistryValueKind.String
},
new RegistryInfo()
{
Name = "PrivateKey",
Value = (object) this._fiddlerCertInfos._privateKey,
RegistryValueKind = RegistryValueKind.String
}
});
return true;
}

错误行:

ref string local1 = @this.fiddlerCertInfos._fiddlerCert;
ref string local2 = @this._fiddlerCertInfos._privateKey;

阅读本文:

https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/ref ref-locals

不能给局部引用变量赋非引用值。因此,要么你需要删除ref关键字的局部变量或添加'ref'前面的值被分配。

最新更新