The one they had to fix is still broken. The 49ers left offensive lineman untouched, and that omission hangs over an otherwise reasonable haul. The bottom line is a respectable B.
They went 1 of 8 on their needs, which is most of what a draft is for. Building through the lines is a philosophy, and they stuck to it.
In sum, a sensible class that nudges the roster the right way.