Я сейчас занимаюсь отражением в c #. После того, как:
Assembly.LoadFile(@"C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.7\System.Numerics.Vectors.dll").GetTypes()
И я нашел это: [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"
Но:
Assembly.LoadFile(@"C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.7\System.Numerics.Vectors.dll").GetType("System.Numerics.Matrix4x4+VectorBasis").Name
"VectorBasis"
Более того, когда я просматривал членов Matrix4x4 + VectorBasis, там был такой член:
[System.Numerics.Vector3* Element0]
И это необработанный указатель, как в с ++? Или что это?
P.S. Я делал это в C # Interactive, но я не думаю, что это повлияло на результаты.