Well, I wanted to make option [E], but tye has already done that, so I'll add a new option.

[F] - All of the Above ('D' only under strict circumstances).

A - Depends on how much you can muster with your knowledge. If you can provide an english description of how to go about it, but cannot put together the code that matches that description, absolutely. There are times that the idea just isn't founded enough (ie: Something like Couldn't we use references here?. Yes, but *how* and *where*?)

B - Absolutely. IMHO, you don't have to be an expert on a subject in order to participate in the discussion associated with it. On the other hand, you shouldn't walk in completely ignorant on the subject and try to offer ideas that just won't even relate (this sort of response might be considered to fall under catagory 'A'). Do at least enough research that will allow you to offer your thoughts without looking like you don't know what you're talking about.

C - This is probably the best way to go about things, but it's an unrealistic method. If every answer was required to come with a complete, working solution to get the job done, there would not be as much discussion on things. I imagine it would be a "here's how to do it, end of discussion" type of thing. Yet again, the other side of the story: others would comment on these answers, offering ways to improve upon the code and its implementation. Who knows? Maybe we'd have more intelligent discussion here. But I think it's too much to ask/demand that a person research a subject to the point that they could teach it. Unless the topic interests you, you shouldn't have to spend an hour putting one reply together. :)

D - Absolutely Not! - No, no, no! Don't do this one, because what if your idea was right? What if you thought of a way to reduce a chunk of code by half, while at the same time improving the efficiency and clarity of the code? The only time you should consider not posting your thoughts is if you truly believe that your comments will not provide a positive contribution to the discussion. Post your thoughts. If you're right, you'll be praised. If you're wrong, some will offer reasoning as to why it doesn't function correctly, others will downvote you thinking that your answer was worthless. Take it as it comes. For every downvote you receive, I think you'll get 2 ir more upvotes.

E (tye's answer) - Sounds good to me, though at the same time, don't think that your input would be unwelcome if others have already provided good answers. TIMTOWTDI, and it's our job to make sure that it gets done in every way possible :)

C:\>shutdown -s
>> Could not shut down computer:
>> Microsoft is logged in remotely.