Let C be a class of some finitely presented left R-modules. A left R-module M is called C-injective, if ExtR1(C, M) = 0 for each C ∈ C. A right R-module M is called C-flat, if Tor1R(M, C) = 0 for each C ∈ C. A ring R is called C-coherent, if every C ∈ C is 2-presented. A ring R is called C-semihereditary, if whenever 0 → K → P → C → 0 is exact, where C ∈ C and P is finitely generated projective and K is finitely generated, then K is also projective. A ring R is called C-regular, if whenever P/K ∈ C, where P is finitely generated projective and K is finitely generated, then K is a direct summand of P. Using the concepts of C-injectivity and C-flatness of modules, we present some characterizations of C-coherent rings, C-semihereditary rings, and C-regular rings.