Constructs the geometry that is the set-theoretic intersection of the input geometries. Use different resultDimension values to generate results of different dimensions.
[Visual Basic 6.0] Function Intersect(
ByVal other As IGeometry, _
ByVal resultDimension As esriGeometryDimension _
) As IGeometry
[Visual Basic .NET] Public Function Intersect ( _ ByVal other As IGeometry, _ ByVal resultDimension As esriGeometryDimension _ ) As IGeometry
[C#] public IGeometry Intersect ( IGeometry other, esriGeometryDimension resultDimension );
[Java] public IGeometry intersect ( IGeometry other, esriGeometryDimension resultDimension ) throws IOException, AutomationException
[C++] HRESULT Intersect( IGeometry* other, esriGeometryDimension resultDimension, IGeometry** intersection );
Parameters
other
other is a parameter of type IGeometry
resultDimension
resultDimension is a parameter of type esriGeometryDimension
intersection [out, retval]
intersection is a parameter of type IGeometry
The Intersection of two Geometries of the same Dimension is a Geometry containing only the regions of overlap between the original geometries.
Intersection is basically an AND between input geometries.
ITopologicalOperator methods must be applied on high-level geometries only. High-Level geometries are point, multipoint, polyline and polygon. To use this method with low-level geometries such as segments (Line, Circular Arc, Elliptic Arc, Bézier Curve), paths or rings, they must be wrapped into high-level geometries types.
This method does not support GeometryBags.
Since ArcGIS 9.2, Intersect has a larger cost - it takes longer to run the method. Therefore, it is a better approach to test if the two geometries are disjoint before calling Intersect.

//The following code shows to wrap a line segment into a polyline in C#
//Assume a line (line1 as ILine) is already created
object obj = Type.Missing;
ISegmentCollection segCollection = new PolylineClass() as ISegmentCollection;
segCollection.AddSegment((ISegment)line1, ref obj, ref obj);
//Set the spatial reference on the new polyline
//The spatial reference is not transfered automatically from the segments
IGeometry geom = segCollection as IGeometry;
geom.SpatialReference = spatialRef;
//Can now be used with ITopologicalOperator methods
'How to wrap a line segment into a polyline in VB6
'Assume a line (pLine as ILine) is already created
dim psc as ISegmentCollection
set psc = New Polyline
psc.addsegment pline
'Set the spatial reference on the new polyline
'The spatial reference is not transfered automatically from the segments
dim pgeo as IGeometry
set pgeo = psc
set pgeo.SpatialReference = pMyspatialReference
'Can now be used with ITopologicalOperator methods
ITopologicalOperator Interface | IConstructMultipoint.ConstructIntersection Method | IConstructMultipoint.ConstructIntersectionEx Method | ITopologicalOperator.Intersect Method