Ideas behind a formula in intersection

In the note by Eisenbud and Harris, "All That Intersection Theory in Algebraic Geometry", Proposition 13.6 on page 465 implies that, for a embedding \begin{equation} \iota: Z \hookrightarrow X \end{equation} where the codimension of $Z$ is $m$. Suppose $C$ is a dimension $m$ smooth cycle of $Z$, then the intersection number between $Z$ and $C$ is \begin{equation} [Z]\cdot [C]=\int_C c_m(\mathcal{N}_{Z/X}) \end{equation} i.e. the integration of the $m$-th Chern class of the normal bundle $\mathcal{N}_{Z/X}$ on $C$. Since I know basically nothing about intersection theory, this formula seems a little ad hoc to me. Anyone who can discuss some intuitions behind this formula? like why this should be the natural intersection number between the class $[Z]$ and $[C]$?

Let's first suppose we are working with smooth closed orientable manifolds, so in particular we have Poincare duality. Let $M$ be a smooth compact orientable manifold of dimension $n$ and suppose we have an oriented vector bundle $E\rightarrow M$ of rank $r$, and a section $s:M\rightarrow E$ such that the intersection $s(M) \cap 0(M)$ is transverse, where $0:M\rightarrow E$ is the zero section. Note that transversality in particular implies that the intersection has dimension $n-r$. Call the intersection $Z$, which we can also think of as the zero locus of $s$. Then we have that the euler class of $E$, $e(E) \in H^r(M)$ is poincare dual to $[Z]\in H_{n-r}(M)$, or perhaps more explicitly, $e(E) \cap [M] = [Z]$. More generally if we have a submanifold $N\hookrightarrow M$, then $e(E) \cap [N]$ would be poincare dual to the zero locus of $s|_N$ (which you can also think of as $s(M) \cap 0(N))$.
Now for the original problem, we are dealing with a problem of excess intersection: i.e. (using the same notation as the question) $C$ and $Z$ are not intersecting with the right dimension. If we were working in the smooth category then we can perturb things so that we do get a transverse intersection, and we can define the intersection as what we would get after perturbing our cycles. This doesn't work in the algebraic category though.
But one thing which does make sense is chern classes of vector bundles! Note that in the smooth category we have by tubular neighbourhood theorem that $N_{Z/X}$ is isomorphic to some open neighbourhood of $Z$ in $X$, and so you can imagine intersecting the cycles in $X$ should behave the same as intersecting the cycles in $N_{Z/X}$. This also works in the algebraic category, namely in this case there is a natural map $A_*(X) \rightarrow A_*(N_{Z/X})$ which intuitively corresponds to specialising cycles of $X$ to a tubular neighbourhood of $Z$. The way to make this precise is via the construction "Deformation to normal cone", which is explained in the next section (or alternatively you can look at Fulton's Intersection Theory).
So now we would like to intersect $C$ and $Z$. Following the analogy in the smooth category, and let $i:C\hookrightarrow Z$ denote the closed embedding, $c_m(i^*N_{Z/X})\cap [C]$ is our intersection. But note that now even though the intersection is not proper we still get a 0-cycle $c_m(i^*N_{Z/X}) \cap [C]$ and in particular a number. This is the formula given.