I am confused by some code that shouldn't be working, but oddly enough, is working and I know I'm simply overlooking something obvious. I'm looking at the source code for the Accord.NET framework and I downloaded it and its compiling just fine, but I'm confused about something. In one of the assemblies, called Accord.Math is a file called Indices.cs. Here is the definition:
internal static class Indices
{
// Lots of code
// ...
// ...
}
You can see this on line 35.
Over in another assembly, called Accord.Statistics, there is a file called Tools.cs. In that file, there is this line:
return Accord.Math.Indices.Random(k, n);
You can see this on line 329.
I am confused on how this line can reference the Accord.Math.Indices
class since it is marked as internal
. My understanding is that a class marked as internal
can only be accessed by classes that reside in the same DLL file. Can someone explain how this is working?