In Hollywood, once you play a certain kind of character well, there's a good chance that becomes your gimmick forever. If you want a stoner with bags of charm; you go to Seth Rogen, an everyman hero, you see Tom Hanks or Paul Rudd; and if you want a schlubb with a heart whose jokes don't quite work any more, you dial A for Adam Sandler.
In a world where money needs to be guaranteed, dependability is a hell of a virtue, so you can see why film-makers (or studios, more accurately) might force their actors into stereotyped roles. But what do you do when someone breaks the mould and manages to play characters at both ends of the spectrum? What do you do when they're great in roles as fundamentally contradictory as heroes and villains?
Well, then you've got a nice problem on your hands. This isn't just a case of them playing both sides of the coin: they have to have EXCELLED as both heroes and villains. And there are a fair few of them out there...
10. Gary Oldman - Batman Begins & Bram Stoker's Dracula
Gary Oldman has a particular flair for playing villains as well as real-life historical figures, so it's a wonder he hasn't played some sort of blood-thirsty tyrant from the past (he did play Lee Harvey Oswald in JFK but he's a more ambiguous sort of figure). He's excelled playing fictional villains though, like Mason Verger in Hannibal, Drexl Spivey in True Romance, Zorg in the Fifth Element, Stansfield in Leon and Ivan Korshunov in Air Force One.
Even more notably, he also played the most terrifying, charming version of Dracula in movie history, adding the right blend of monstrosity and seductiveness to his performance. He's devilish and compelling in equal measure and a world apart from his Jim Gordon for Nolan's Batman trilogy.
In the corrupt cesspool of Gotham, his Gordon is an island sanctity of moral integrity, and while he knows difficult measures must be taken to win, he's the most fundamentally good character in the franchise.