I've always heard that a candidate should never share salary information and require the company to provide the first concrete number in the form of their initial offer.
However, I've repeatedly used all of the "business-professional" and "HR approved" sorts of conversational techniques to enact this advice, and the only result that has ever occurred is either (a) the company literally refuses to even conduct a single interview with me before knowing salary information, or (b) the company finally makes a job offer and it is extremely low, something around 50%, of what I have earned previously in similar roles.
95% of the time I say I am more focused on assessing cultural and technical fit for the position, making sure I would jell with the team, finding out more about the company, learning more about the trade-offs required for the role, etc., as reasons for not providing salary information as literally the first point of communication with HR, it results in an instantaneous rejection.
I still believe candidates should not agree to unfair information asymmetry by revealing their salary or wage preferences first. The problem is it just seems that something like 95% of all hiring managers will outright immediately reject you, on principle, if you don't agree to bear that unfair information asymmetry.
All the great techie blog posts on being a better negotiator, like this:< http://www.kalzumeus.com/2012/01/23/salary-negotiation/ > -- they sound great and give me a pumped up rah rah feeling, but in practice they basically never work.
My interviewing experience with this has covered large multi-national companies, tech firms, small boutique quantitative finance firms, start-ups, consulting companies, and education technology. There certainly are industries I am missing, but it has seemed like a universal phenomenon to me.