This is subjective by definition, and due to the uncertainty of the question, you are likely to get answers all over the map. Do you mean one physical line or logical line? EG, you say:
int x = BigHonkinClassName.GetInstance().MyObjectProperty.PropertyX.IntValue.This.That.TheOther;
or
int x = BigHonkinClassName.GetInstance(). MyObjectProperty.PropertyX.IntValue. This.That.TheOther;
Single liners, for me, are the question of "what is right." In the above case, I would probably break this down to both physical and logical lines, getting an instance of BigHonkinClassName, and then pulling the full path to. But that's just me. Other people will not agree. (And there is a place for this. As I said, subjective.)
With regard to readability, keep in mind that for many languages even “single-line” can be broken down into several lines. If you have a long set of conditions for a conditional ternary operator ( ? : , For example, you may need to split it into several physical lines for readability:
int x = () ? : ;
At the end of the day, the answer is always: "It depends." Some structures (for example, many DAL, EG SubSonic generators) almost require indecently long single-line lines to do any real work. Other times, breaking it down into several lines, are highly preferred.
Based on specific examples, the community can provide more practical advice.
In general, I definitely don't think you should “squeeze” a bunch of code into one physical line. This doesn’t just hurt readability, it brings pleasure to someone who is completely disdainful of a service programmer. As I used to educate my students: always code for the maintenance programmer, because it will often be for you.
:)