Procedural examples question ( Extrusion )

In the Extrusion example in the procedural examples the script (ExtrudeMeshTrail.js) calls different classes specified by the plugin file (MeshExtrusion.cs). The first few lines of the plugin read

public class MeshExtrusion
{
public class Edge

So when I see in the script

private var precomputedEdges : MeshExtrusion.Edge[ ];

It would make sense that the Edge class is property of the MeshExtrusion class such that I could have something like this

var JoeBob : MeshExtrusion;
JoeBob.Edge = BlahBlah;

A, am I understanding this right?

B. If so I can’t figure out why the line in the script

precomputedEdges = MeshExtrusion.BuildManifoldEdges(srcMesh);

has " __.__BuildManifoldEdges " as opposed to " __.__Edge.BuildManifoldEdges "

C. What’s happening here? It seems like it’s a function calling itself.

public static void ExtrudeMesh (Mesh srcMesh, Mesh extrudedMesh, Matrix4x4[ ] extrusion, bool invertFaces)
{
Edge[ ] edges = BuildManifoldEdges(srcMesh);
ExtrudeMesh(srcMesh, extrudedMesh, extrusion, edges, invertFaces);
}

I know essentially squat about C# and just a hair more about javascripting. I’m just trying to figure out what can be done w/ these scripts and how. Case in point if I hadn’t looked at the script I’d have never had a clue we could use " __*.__BuildManifoldEdges "

C# allows one class to be defined inside another, but the inner class isn’t a property, so you can’t access it from an object reference.