Kac*_*per 13 .net c# reflection
我目前正在处理c#中的反射.后:
Assembly.LoadFile(@"C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.7\System.Numerics.Vectors.dll").GetTypes()
Run Code Online (Sandbox Code Playgroud)
我发现了这个:( [System.Numerics.Matrix4x4], [System.Numerics.Matrix4x4+CanonicalBasis], [System.Numerics.Matrix4x4+VectorBasis]
有来自"System.Numerics.Vectors.dll"的反映类型)我知道Matrix4x4是结构,但我找不到关于CanonicalBasis和VectorBasis的任何信息,以及"+"在这种情况下的含义.我正在做进一步的研究,另一个奇怪的事情是:
Assembly.LoadFile(@"C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.7\System.Numerics.Vectors.dll").GetType("System.Numerics.Matrix4x4+VectorBasis").FullName
"System.Numerics.Matrix4x4+VectorBasis"
Run Code Online (Sandbox Code Playgroud)
但:
Assembly.LoadFile(@"C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.7\System.Numerics.Vectors.dll").GetType("System.Numerics.Matrix4x4+VectorBasis").Name
"VectorBasis"
Run Code Online (Sandbox Code Playgroud)
此外,当我查看Matrix4x4 + VectorBasis的成员时,有这样的成员:
[System.Numerics.Vector3* Element0]
Run Code Online (Sandbox Code Playgroud)
它是像c ++中的原始指针吗?或者它是什么?
PS我在c#interactive中这样做,但我认为它对结果没有任何影响.
Pat*_*man 13
的+
类名之间意味着后的部分+
是一个嵌套类型的名称是之前的类型+
.例如Dictionary<string, string>+KeyCollection
.KeyCollection
是一个内在的阶级Dictionary<TKey, TValue>
.
所述*
确实表示指针,因为提到的场是在不安全模式下:
public unsafe Vector3* Element0;
Run Code Online (Sandbox Code Playgroud)