4. If $k$ is an integer such that the equation in $x$
$$
k x^{2}-(2 k+3) x+3=0
$$

has rational roots, then $k$ is called a "good number". Then, the number of good numbers $k$ is ( ).
(A) 0
(B) 1
(C) 2
(D) 3
4. C.

If $k=0$, the original equation becomes
$$
-3 x+3=0 \Rightarrow x=1 \text {. }
$$

Thus, $k=0$ is a good number.
If $k \neq 0$, then the discriminant of the original equation is
$$
\Delta=(2 k+3)^{2}-12 k=4 k^{2}+9 \text {, }
$$

a perfect square.
Let $4 k^{2}+9=m^{2}$ (where $m$ is a positive integer)
$$
\Rightarrow 9=(m+2 k)(m-2 k) \text {. }
$$

Assume $k>0$ for now.
Then $m+2 k>m-2 k>0$
$$
\Rightarrow\left\{\begin{array} { l } 
{ m + 2 k = 9 , } \\
{ m - 2 k = 1 }
\end{array} \Rightarrow \left\{\begin{array}{l}
m=5, \\
k=2 .
\end{array}\right.\right.
$$

Thus, $k= \pm 2$.
Upon verification, $k= \pm 2$ are good numbers.
Therefore, the number of good numbers $k$ is 3.