Skip to content

Instantly share code, notes, and snippets.

@ilkerde
Created March 10, 2011 17:26
Show Gist options
  • Save ilkerde/864508 to your computer and use it in GitHub Desktop.
Save ilkerde/864508 to your computer and use it in GitHub Desktop.
What do you think about the type signature of this method ?!?
public IEnumerable<Answer> GetAll()
{
List<Answer> answers = GetAnswers();
return answers;
}
@MikeBild
Copy link

@steffen: Yes, you're totally right.

@forki
Copy link

forki commented Mar 11, 2011

There is another point. If you return IEnumerable instead of Array or List you are disabling fast indexed access. Why would you do this?

In general: I don't see any value in returning a base class if you could return the concrete class. But maybe I am wrong.

If you want immutability then just use an immutable data structure.

@ilkerde
Copy link
Author

ilkerde commented Mar 11, 2011

@codefromground thanks for your thoughts. appreciate it. i truly hope that we can dive into topics as this one while having a nice espresso at your site ;) Regarding the ReadonlyCollection: I'm really sorry that my initial example utilized a List. It distracted too much from what i wanted to stress. The second example (using Answer[]) fits more to what i wanted to have opinions for.

@ilkerde
Copy link
Author

ilkerde commented Mar 11, 2011

@forki Thanks indeed for your in-depth and thoughtful comments.
I do believe that I would have never achieved to express the importance of materialization (and even more, preserving the materialization information by type signature) as you did in your comment.

At this point, I'd like to thank all of you for lending your time and brain for my little question. It was very valuable and insightful.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment