Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET反编译程序集具有'&';在生成生成生成错误的类型之后_C#_.net_Vb.net_Dotpeek - Fatal编程技术网

C# .NET反编译程序集具有'&';在生成生成生成错误的类型之后

C# .NET反编译程序集具有'&';在生成生成生成错误的类型之后,c#,.net,vb.net,dotpeek,C#,.net,Vb.net,Dotpeek,我继承了一些程序集,据我所知,这些程序集是使用Visual Studio 2005、.NET Framework 1.1(?)和VB.NET生成的。不幸的是,源代码不再对我可用。因此,我使用dotPeek反编译程序集(作为C#),并尝试对项目进行反向工程。生成的源代码有几行类似于: // ISSUE: explicit reference operation // ISSUE: variable of a reference type string& szDataDescr = @str

我继承了一些程序集,据我所知,这些程序集是使用Visual Studio 2005、.NET Framework 1.1(?)和VB.NET生成的。不幸的是,源代码不再对我可用。因此,我使用dotPeek反编译程序集(作为C#),并尝试对项目进行反向工程。生成的源代码有几行类似于:

// ISSUE: explicit reference operation
// ISSUE: variable of a reference type
string& szDataDescr = @str;

“string&”对我来说是陌生的(而且visualstudio也很明显)。Visual Studio 2015未将此识别为有效,我收到了编译错误。“&”是dotPeek添加的东西,还是某个旧的.NET构造在当时是有效的?使用“type&”模式的地方都会出现类似的注释,因此我假设它是关联的。

类型名称后的&符号表示它是引用类型,变量名称前的@会生成对该变量的引用

如果您试图编译代码,您将得到一个错误,因为编译器将&视为按位and,并且会抱怨您使用了一个类型,就好像它是一个变量一样。但这没关系,因为您不是从C#源文件获取的

最好的解决方案是使用不同的反编译器

  • ILSpy:
  • .Net代码反映:
  • .Net反射器:

查看此处了解有关的详细信息。

类型名称后的&符号表示它是引用类型,变量名称前的@生成对该变量的引用

如果您试图编译代码,您将得到一个错误,因为编译器将&视为按位and,并且会抱怨您使用了一个类型,就好像它是一个变量一样。但这没关系,因为您不是从C#源文件获取的

最好的解决方案是使用不同的反编译器

  • ILSpy:
  • .Net代码反映:
  • .Net反射器:

查看此处以了解更多信息。

您是否尝试过其他反编译器?产生了什么?查看有关的更多信息&谢谢。这个链接是有益的。你正在使用一个相当糟糕的反编译器,你得到了你所付出的。在MSIL中正式合法,C++/CLI支持创建对变量的引用。但在VB.NET或C#中,变量引用不会破坏属性的抽象。如果它实际上是用C++/CLI编写的,那么,请立即停止,并以正确的方式执行此操作。接下来打个电话。你试过其他反编译程序吗?产生了什么?查看更多关于&谢谢。这个链接是有益的。你正在使用一个相当糟糕的反编译器,你得到了你所付出的。在MSIL中正式合法,C++/CLI支持创建对变量的引用。但在VB.NET或C#中,变量引用不会破坏属性的抽象。如果它实际上是用C++/CLI编写的,那么,请立即停止,并以正确的方式执行此操作。接下来用电话。