Spontaneous Publicity
blogs are the new phone book

C# Enum Craziness: Sometimes What You Expect Isn't The Case

January 28, 2008 04:59 by Luke

I learned something new today about enums that I find really weird. Lets start with the following test enum:

public enum Action
{
    Run = 2,
    Walk = 4,
    Crawl = 8
}

and then some code to do something with that enum:

static void Main(string[] args)
{
    Console.WriteLine((Action)2);
    Console.WriteLine((Action)4);
    Console.WriteLine((Action)8);
    Console.WriteLine((Action)10);
}

What do you think will happen here? Will it even compile?

When I saw this code snippet I said to myself, "the first three lines look ok but the last line won't work because 10 isn't a valid value for this enum. Well, I was wrong. This program actually outputs:

Run
Walk
Crawl
10

Huh?!? How could this be? 10 isn't a valid value according to my enum definition!

This Should Never Happen...Right?

Ok, lets try something different. How about a method?

public static void Execute(Action action)
{
    switch (action)
    {
        case Action.Run:
            Console.WriteLine("Running");
            break;
        case Action.Walk:
            Console.WriteLine("Walking");
            break;
        case Action.Crawl:
            Console.WriteLine("Crawling");
            break;
        default:
            Console.WriteLine("This will never happen! {0}", action);
            break;
    }
}
Surely you can't pass anything into this method other than one of the 3 values defined in my enum. So lets run some code:
static void Main(string[] args)
{
    Execute(Action.Run);
    Execute(Action.Walk);
    Execute((Action)55);
}
What do you think this does? Well, it outputs:
Running
Walking
This will never happen! 55

Just about this time you must be thinking: "This has to be a bug!". Well, it is not. It is by design. here is the excerpt from the C# design spec:

14.5 Enum values and operations

Each enum type defines a distinct type; an explicit enumeration conversion (Section 6.2.2) is required to convert between an enum type and an integral type, or between two enum types. The set of values that an enum type can take on is not limited by its enum members. In particular, any value of the underlying type of an enum can be cast to the enum type, and is a distinct valid value of that enum type.

Wow, that is not at all what I expected when it comes to limiting the possible values of enums. So what are enums good for then? Are they just for code readability? Between this little revelation and my previous hack to associate string values to enums, I am loosing faith in enums.

Can You Handle it?

So what is the best way to check for this in your methods? Should you throw an exception if you receive an enum value you were not expecting? Should you just ignore it? Well, lets see what the .Net base class libraries do.

First, lets start with the System.IO.File class. What happens if I run the following code?

File.Open(@"C:\temp\test.txt", (FileMode)500);

Well, it throws a System.ArgumentOutOfRangeException with the message "Enum value was out of legal range.". Ok, makes sense - I did pass in something out of range.

Lets try reflection. What does the following code snippet output?

PropertyInfo[] info = typeof(StringBuilder)
.GetProperties((BindingFlags)303); Console.WriteLine(info.Length);

Well, it just outputs '0' which means in this case it is just being ignored and an empty array is returned.

What about System.String? Lets try this code snippet:

"TestString".Equals("TESTSTRING", (StringComparison)245);

Well, it turns out this throws an exception but instead of being a System.ArgumentOutOfRangeException like System.IO did, it throws a System.ArgumentException with the message "The string comparison type passed in is currently not supported." Ok, so this is kind of the same but still a little inconsistent if you ask me.

Is Anything Safe These Days?

So what is a developer to do? Obviously you need to be aware of this when you are receiving enum types from publicly facing code. It seems there is no clear guidance on this that I can find. The C# design spec explains the behavior but doesn't really give any guidance on why or how this should be handled. So the only other place to turn for guidance is one of my favorite .Net books Framework Design Guidelines by Brad Abrams and Krzysztof Cwalina. On their section on enums, I can't find any guidance on how to handle out of range enum values. I do, however, find guidance that we should be using enums:

DO use an enum to strongly type parameters, properties, and return values that represent sets of values

They also suggest that enums should be favored over static constants:

DO favor using an enum over static constants

And Jeffrey Richter (and while I am pointing out my favorite .Net books, I have to add Mr. Richter's book CLR via C# which contains priceless information on the CLR that you can't find anywhere else) adds the following commentary:

An enum is a structure with a set of static constants. The reason to follow this guideline is because you will get some additional compiler and reflection support if you define an enum versus manually defining a structure with static constants.

So I guess we do continue to use enums and just know that we can't always trust their values to be valid. Do you think the C# design spec should be amended to include a recommended behavior for out of range enum values? Perhaps Brad and Krzysztof can include something in their second edition of Framework Design Guidelines.

kick it on DotNetKicks.com
Tags:
Categories:
Actions: E-mail | del.icio.us | Permalink | Comments (213) | Comment RSSRSS comment feed

Comments

January 28. 2008 07:30

Will Sullivan


          I believe the reason why this is possible is to support flags.  In other words,

          [flags()]
          public enum MyFlag { unknown = 2, red = 4, blue = 8 }

          public MyFlag WhoGotDaFlag = MyFlag.red | MyFlag.blue;

          Test that out and see what the int value of WhoGotDaFlag is.  I bet it isn't 2, 4 or 8.

          OR-ing together enum values is an extremely important feature of the CLR, and is used throughout the framework.  I doubt it'll be changed.
        

Will Sullivan

January 28. 2008 07:51

Luke Foust

I agree that OR-ing enums together is a feature (although it is rather un-intuitive). I with the compiler could make a distinction between enums which are marked with the [Flags] attribute and those which aren't meant to be OR-ed together.

Luke Foust

January 28. 2008 09:08

Josh Tucholski

I second their thoughts that this was meant for quick bit-masking.  Take a look at the tutorial I wrote on flags with ASP.NET tucholski.blogspot.com/.../...n-wmaster-pages.html

Josh Tucholski

January 28. 2008 12:57

James Curran


          [Flags] is part of it.  The other part is that if the CLR had to verify every int to enum cast against EVERY possible enum value,  your  code would come to a screeching halt.   Consider the code to handle that:

          enum MyFlag myflag;
          myflag = (int) someInt;

          would become (effectively)

          enum MyFlag myflag;
          bool OK= false;
          for(int v in Enum.GetValues(typeof(MyFlag))
          {
          if (v == someInt)
          {
          OK= true;
          break;
          }
          if (!OK)
          throw new InvalidCastException();

          myflag = (int) someInt;

          Do you really want to go through all that every time you assign an int to an enum?  And remember, this cannot be done as compile time, even if the int being assigned is a constant, as the enum may be defined in a different assembly, and may change between compile & run.
        

James Curran

January 28. 2008 15:10

Justin Etheredge

Another reason why this behavior can be useful is when it comes to extending enumerations. I came across this recently when working on a Linq provider where there is an ExpressionVisitor class that walks the expression tree. There is a framework enumeration that defines all of the possible expression types, but I can just as easy extend this visitor class to add several of my custom expression types. The ExpressionVisitor uses the enumeration from the framework and enumerations cannot be inherited from, but I can define my own enumeration and specify values that do not overlap with the framework enumeration. I can then pass in values from my new enumeration with no problems. Otherwise I would have to redefine the entire enumeration and add my custom values, then convert to the original enumeration when passing values to the base class. Whether or not this would be a better solution is up for debate. Smile

Justin Etheredge

January 28. 2008 15:59

JohnB

Interesting, I get the same results with VB too.

JohnB

January 28. 2008 21:09

[...] C# Enum Craziness: Sometimes What You Expect Isn’t The Case « Spontaneous Publicity - Luke Foust talks about some of the stranger behaviour of the enum [...]

Reflective Perspective - Chris Alcock » The Morning Brew #20

January 28. 2008 21:10

leppie

Enum.IsDefined() should be used.

leppie

January 28. 2008 23:47

NinjaCross


          It's strange that no recommendations and specific hints are given in the official c# specs.
          Anyway, I absolutely agree with the explanation made by James Curran.
          Thanks Luke for pointing to this very important aspect of Enums
        

NinjaCross

February 4. 2008 08:13

[...] C# Enum Craziness: Sometimes What You Expect Isn’t The Case [...]

Wöchentliche Rundablage: ASP.NET, ASP.NET MVC, System.AddIn, Silverlight, LINQ, C# 3.0, WPF, XBAP… | Code-Inside Blog

July 17. 2010 23:58

the diet solution

Nice article. I just stumbled upon your website and wanted to say that I have really enjoyed reading your articles. Anyway I'll be subscribing to your feed and I hope you post again soon.

the diet solution

July 20. 2010 08:32

Naughty Webcam

Good topic. Your blog provided me with valuable information to help me get started my own blog in this branch. I will continue to watch. Thanks!

Naughty Webcam

July 25. 2010 03:05

instant cash loan

Friends LOVE misery, in fact. Sometimes, especially if we are too luck or too successful or too pretty, our misery is the only thing that endears us to our friends.

instant cash loan

July 27. 2010 14:58

Julian Schneiderman

This post is good.

Julian Schneiderman

July 27. 2010 16:46

Darla Ballantyne

I found this information usefull.

Darla Ballantyne

July 31. 2010 07:21

HostMonster Review

Thanks for this blog post, It's fantastic to see another BlogEngine.NET user. Most people these days tend to use Wordpress, but in my opinion, BlogEngine.NET is the better system to use.

HostMonster Review

August 4. 2010 00:51

Cursos de ingles en el extranjero

Ha, actions speak louder than words. Come on guys!

Cursos de ingles en el extranjero

August 4. 2010 11:38

abercrombie and fitch

I always be a fan of this website, I find it truly well structured. Congratulations to the writer of the site

abercrombie and fitch

August 6. 2010 14:06

webcam girls

fabulous. Waiting for new comments on this topic <a href="http://www.naughtywebcamsex.com" title="Webcam Girls">Webcam Girls</a>

webcam girls

August 6. 2010 18:13

live webcam sex

yes, quite interesting. I still watch this topic.. <a href="http://www.naughtywebcamsex.com" title="Webcam Girls">Webcam Girls</a>

live webcam sex

August 6. 2010 18:13

Replacement sash windows

It's crazy this gets written about so little, I'm sure the demand is there.

Replacement sash windows

August 7. 2010 22:40

HYPERCOM T7PLUS MANUAL

Hey admin, I like MS Blog Engine but why did you chose it?  I mean it's so neat with the random avatars and draws people in, but what speficially made you want to install it?

HYPERCOM T7PLUS MANUAL

August 7. 2010 22:56

how to get a girlfriend

I am speechless. This is a great blog and very engaging too. Excellent work! That's not really much coming from an amateur publisher like me, but it's all I could say after reading your posts. Great grammar and vocabulary. Unlike other blogs. You really know what you're talking about too. So much that you made me want to learn more. Your blog has become a stepping stone for me, my friend. Thank you for the articulate journey. I really enjoyed the 4 posts that I have read so far.

how to get a girlfriend

August 8. 2010 00:57

Free iPad

This really needs to be looked at a lot close if we're ever going to find a solution.

Free iPad

August 8. 2010 00:57

ipad

I prefer to look on the brighter side of things which I'm sure you can appreciate.

ipad

August 8. 2010 00:57

iPhone information

This really needs to be looked at a lot close if we're ever going to find a solution.

iPhone information

August 8. 2010 10:22

Cruz Vandegrift

Hey, i Think your blog is good!! I found it on Google I think i will come back one day

Cruz Vandegrift

August 8. 2010 15:15

Ab Circle Pro Reviews

I found your site on del.icio.us and it's pretty interesting, thanks.  

Ab Circle Pro Reviews

August 8. 2010 22:12

Watch Movies

Hey, are you on twitter?

Watch Movies

August 9. 2010 00:21

Herta Falvey

great blog! keep up the great work!

Herta Falvey

August 9. 2010 15:52

Andrew Pelt

I love your blog

Andrew Pelt

August 9. 2010 23:40

dragracing tire pressure

Hi. I just noticed that your site looks like it has a few code problems at the very top of your website's page. Is it an older version of blogengine.net?  I'm not sure if everybody is getting this same bugginess when browsing your blog? I am employing a totally different browser than most people, referred to as Chrome, so that is what might be causing it? I just wanted to make sure you know. Thank you for posting some great postings and I will try to return back with a completely different browser to check things out!

dragracing tire pressure

August 10. 2010 14:43

Ron of Acid Reflux Treatment

It is fun to learn something new everyday.
Reading good posts help me find more solutions to different queries.

Ron of Acid Reflux Treatment

August 11. 2010 04:06

North American Bancard

Whats Up
I attempted to subscribe to your RSS feed and it seems to be broken.  I will come back tomorrow.

North American Bancard

August 11. 2010 05:07

games

g rider woot

games

August 11. 2010 07:58

statistics help online

great blog! keep up the great work!

statistics help online

August 11. 2010 12:50

Straw Studios Handbags

Our priority is to satisfy readers like you. Funds ought to come us a bonus

Straw Studios Handbags

August 11. 2010 13:01

Virility Ex

I differ with most folks here; since I started reading this blog post I couldn't stop until I finished, while it wasn't just what I had been trying to find, was indeed a very good read though. I will instantly get your feed to keep in touch of future updates.

Virility Ex

August 11. 2010 15:45

Luciano Kunin

like your site will visit again

Luciano Kunin

August 12. 2010 08:12

Virility Ex

Hey, probably I will be some how off topic here, nonetheless I had been checking your website and it seems outstanding!. I’m building a web site and attempting to make it appear clean, however everytime I touch it I mess something up. Did you design and style the website by yourself? Can a person with very little experience do it, as well as add updates without messing it up? well, great information on here, very helpful.

Virility Ex

August 12. 2010 11:18

my computer is slow

Totally new to me; I wasn't aware of the many ramifications and depth to this case until I surfed here through Bing! Good job.

my computer is slow

August 12. 2010 16:46

435508-B21

I really enjoyed your blog, I totaly agree with your assesment

435508-B21

August 13. 2010 00:05

Orlando Marketing

I am going to reccomend your Blog to various associates of mine, I think you are definately on the right track

Orlando Marketing

August 13. 2010 01:52

porter cable battery

Do you like running blogengine.net?  If I might --perhaps you should consider adding a few jquery animations.  I dont mean to disrespect what you've done; its very good stuff, indeed.  But, I think would respond to it more positively if they could be something flashy to your site.  Keep it up, but put a little more into it next time.

porter cable battery

August 13. 2010 02:56

opony

I would equal to add your journal to my blogroll gratify bowman me what mainstay should I use?

opony

August 13. 2010 08:20

how do you get pregnant

In fact, I’m just starting out in community management/marketing media and starting to find out how to do it well - resources like this blog post are incredibly helpful. As our company is based in the US, is kind of new to us The example mention is something that I worry about as well, how to show your own genuine enthusiasm and share to the community.

how do you get pregnant

August 13. 2010 11:46

Bike Hitch Mount Rack

Nice Info . Do you mind if I talk about this post in my blog. You and your blog will surely get the credit

Bike Hitch Mount Rack

August 14. 2010 00:36

make money on the web

She is just wonderful! All she touches converts to gold, so despite some chitchats or lies about her, she remains on the top. Way to go girl, you're the best

make money on the web

August 14. 2010 08:34

Korey Modesitt

this has been very intresting thank you for the good read

Korey Modesitt

August 14. 2010 10:15

making money on the web

I don’t agree with most folks here; since I found this blog post I couldn't stop until I was done, although it wasn't just what I had been searching for, was still a great read though. I will immediately get your blog feed to maintain informed of future updates.

making money on the web

August 14. 2010 15:45

Matthew Long

been following your blog for 3 days now and i should say i am starting to like your post. and now how do i subscribe to your blog?

Matthew Long

August 14. 2010 18:12

Dissertation help

Well... round about every blog posts online don't have much originality as I found on yours.. Just keep updating much useful information so that reader like me would come back over and over again.

Dissertation help

August 14. 2010 21:49

Venapro

All new to me; I wasn't aware of the many ripples and depth to this story until I searched here through Yahoo! Fantastic job.

Venapro

August 15. 2010 12:51

Article Rewriter

Great information. Its posts like these that help you achieve your goals.

Article Rewriter

August 15. 2010 14:37

Carola Swartzendrube

Extremely interesting post thanks for writing it I have added your site to my favorites and will check back  By the way this is a little off topic but I really like your web page layout

Carola Swartzendrube

August 15. 2010 14:41

Love Fulda

This is just the sort of info I was looking for! Thanks

Love Fulda

August 16. 2010 05:02

dropship from china

I was very pleased to find this site. This is an intelligent and well written article, you must have put a fair amount of research into writing this.  Thank you

dropship from china

August 16. 2010 06:34

Free Apple iPad

I rate this blog for the simple reason that the information given is very clear and well writen, congratulations and keep up the great work, I will tell my pals about this site.

Free Apple iPad

August 16. 2010 18:15

miniature garden bridge

Appreciate what we have, that's what my mother always said to me.

miniature garden bridge

August 16. 2010 19:55

e-cigarette

Come on guys, let's keep it clean. This is a good blog. Good info mate.

e-cigarette

August 16. 2010 22:01

registry cleaner reviews

I differ with most guys here; I found this blog post I couldn't stop until I finished,  even though it wasn't just what I had been trying to find, was still a nice read though. I will immediately grab your blog feed to keep informed of future updates.

registry cleaner reviews

August 16. 2010 23:08

garden-bridge

Come on guys, let's keep it clean. This is a good blog. Good info mate.

garden-bridge

August 16. 2010 23:09

e-cigarette

I don't completely agree, but the principle is right, and you're heart is in the right place.

e-cigarette

August 17. 2010 05:52

for homework help

I rate this blog for the simple reason that the information given is very clear and well writen, congratulations and keep up the great work, I will tell my pals about this site.

for homework help

August 18. 2010 08:43

Sports Betting

SPORTS BETTING World's No.1 destination for online betting, football betting, baseball betting,spread betting & horse racing betting on the internet. Online Betting made simple & secure at SPORTSBETTINGCHUMP.COM

Sports Betting

August 18. 2010 11:48

Buy Provillus

Hi, probably I am being a little bit off topic here, nonetheless I had been checking your blog and it seems outstanding!. I’m creating a web site and attempting to make it interesting, however everytime I touch it I mess something up. Did you build and style the blogsite by yourself? Can somebody with very little knowleadge do it, as well as add frequent updates without messing it up? Anyway, info on here, very helpful.

Buy Provillus

August 18. 2010 19:56

get husband back

Thank you for the information

get husband back

August 18. 2010 19:58

John

Do you have any references for what you wrote here?

John

August 18. 2010 20:31

George Franks

I may have a few screws loose, but for the longest time I have been thinking that perhaps the most useful thing we could do for the poor populace in Africa would be to annilate all the dangerous wild life.  Africa is full of lions, elephants, hyenas, hippos, black mambas and many other dangerous animals.  All of these animals must cut people off from enormous amounts of resources as well as making life much more dangerous. How free can poor subsistence farmers innovate when even moving around the country is hemmed in by an open zoo?  I would also knock off every caymen on earth too (two legs good; four legs bad). They are a danger to children (probably not you) and cats that the farmers might own.  Think of how profitably domesticated herds could use the same vast natural resources used by useless to poor people's wild herds and their natural predators. I am perfectly serious about this even if I might be twisted, ill informed, or both.

George Franks

August 18. 2010 23:26

venapro

Many resources like the one you mentioned here will be very helpful to me! I will post a link to this page on my site. Thanks for posting that link, nevertheless, it appears to be down.

venapro

August 19. 2010 07:56

computer runs slow

In point of fact, I’m just getting my feet wet in community management/marketing media and working on to learn how to do it well - resources like this article are incredibly helpful. As our company is based in the US, it’s all a bit new to us. The reference above is something that I worry about as well, how to show your own authentic enthusiasm and share to the opportunity.

computer runs slow

August 19. 2010 22:28

Broyhill Furniture

Thank you for this blog post,  it was great to read.

Broyhill Furniture

August 20. 2010 13:37

Tikva Davaran

Like your weblog I'm going to subscribe

Tikva Davaran

August 20. 2010 16:00

how do you get pregnant

I differ with most guys here; I found this blog post I couldn't stop until I finished, while it wasn't just what I had been looking for, was a nice read though. I will instantaneously grab your feed to keep in touch of future updates.

how do you get pregnant

August 21. 2010 06:07

Web Design Company

Nice! I'm waiting for your sharings thank you.

Web Design Company

August 21. 2010 15:17

Fat Loss for Idiots Review

Many people will agree with this article whoever many other's will not agree. Anyway I appreciate your hard work.

Fat Loss for Idiots Review

August 21. 2010 15:22

Fat Loss for Idiots

Well, I have not yet read this blog post, but it seems intersting.I would love to read more in the future. Keep up the amazing work.

Fat Loss for Idiots

August 22. 2010 10:45

how to prevent premature ejaculation

You made a very good point right there. I made a search on the topic and found many people will agree with your article. By the way I will subscribe to your feed and I hope you post again soon.

how to prevent premature ejaculation

August 22. 2010 11:09

Pearlene Gallamore

This is getting a bit more subjective, but I much prefer the Zune Marketplace. The interface is colorful, has more flair, and some cool features like 'Mixview' that let you quickly see related albums, songs, or other users related to what you're listening to. Clicking on one of those will center on that item, and another set of "neighbors" will come into view, allowing you to navigate around exploring by similar artists, songs, or users. Speaking of users, the Zune "Social" is also great fun, letting you find others with shared tastes and becoming friends with them. You then can listen to a playlist created based on an amalgamation of what all your friends are listening to, which is also enjoyable. Those concerned with privacy will be relieved to know you can prevent the public from seeing your personal listening habits if you so choose.

Pearlene Gallamore

August 22. 2010 13:08

bulletproof partnership

Nice blog. Happy blogging

bulletproof partnership

August 22. 2010 16:33

Catherin Girgis

Nice story! I have been looking for this information all around. This is was I looking for.

Catherin Girgis

August 22. 2010 16:40

Arlie Luckenbaugh

Nice post! I have been looking for this information all around. This is was I looking for.

Arlie Luckenbaugh

August 22. 2010 17:28

gfx forums

Great post for us internet enthusiasts, thank you for posting it! Cheers!

gfx forums

August 22. 2010 17:29

gfx forum

Great post for us coders, thank you for posting it! Cheers!

gfx forum

August 23. 2010 01:24

Lyle Pomainville

Hoping, that you will continue bloggin articles having many of useful information. many thanks

Lyle Pomainville

August 23. 2010 01:31

loan origination

well well well... it does look like there is a lot of fighting going on about this lately.. I'll back off this one and just see

loan origination

August 23. 2010 09:58

Wage Garnishment

Thank you for posting this article. I will bookmark your site to read more of your updated post.

Wage Garnishment

August 23. 2010 18:52

how to last longer in bed

In fact, I’m just beginning in management media and starting to learn how to do it well - resources like this blog post are very helpful. As our Site is based in the US, it’s all a bit new to us. The case mention is something that I worry too well, how to show your own genuine enthusiasm and share to the community.

how to last longer in bed

August 23. 2010 19:25

Lorie Cullar

Sorry for the huge review, but I'm really loving the new Zune, and hope this, as well as the excellent reviews some other people have written, will help you decide if it's the right choice for you.

Lorie Cullar

August 24. 2010 11:46

Johnny Wiggs

Totally agree. Came across this great site whilst trying to find a decent one to comment on. Well done!

Johnny Wiggs

August 24. 2010 11:51

Darcy Court

Apple now has Rhapsody as an app, which is a great start, but it is currently hampered by the inability to store locally on your iPod, and has a dismal 64kbps bit rate. If this changes, then it will somewhat negate this advantage for the Zune, but the 10 songs per month will still be a big plus in Zune Pass' favor.

Darcy Court

August 24. 2010 11:52

Santiago Malango

Zune and iPod: Most people compare the Zune to the Touch, but after seeing how slim and surprisingly small and light it is, I consider it to be a rather unique hybrid that combines qualities of both the Touch and the Nano. It's very colorful and lovely OLED screen is slightly smaller than the touch screen, but the player itself feels quite a bit smaller and lighter. It weighs about 2/3 as much, and is noticeably smaller in width and height, while being just a hair thicker.

Santiago Malango

August 24. 2010 16:24

last longer in bed

She is just great! All she touches turns to gold, so despite some rumors or lies about her, she stays on the top. So go girl, you're the best

last longer in bed

August 25. 2010 01:19

how to stop premature ejaculation

I differ with most people here; since I found this post I couldn't stop until ,  even though it wasn't just what I had been searching for, was indeed a very good read though. I will instantly get your RSS feed to stay in touch of any updates.

how to stop premature ejaculation

August 25. 2010 02:04

supplement reviews

hi admin, I found this site from ask.com and read many of your other blog posts. They are cool. Please keep it up..

supplement reviews

August 25. 2010 09:36

Dissertation writing

Extremely useful and informative article. I wish i can do all of that in a short period of time. But for sure doing those will produce results. I will try to spread your words through my blog and link it back to you. Thanks a lot for those tips.

Dissertation writing

August 25. 2010 09:36

Dissertation writing

Extremely useful and informative article. I wish i can do all of that in a short period of time. But for sure doing those will produce results. I will try to spread your words through my blog and link it back to you. Thanks a lot for those tips.

Dissertation writing

August 25. 2010 10:29

NHL 11 PS3

Hello,
can't say I agree with your page however you do make some good points.  I like the colors you use in your site.

NHL 11 PS3

August 25. 2010 11:13

buy viagra online

Nice post. I buy viagra online and it's not that expensive.

buy viagra online

August 26. 2010 00:58

viagra no prescription

Well your post is spot on. I've found the cheapest viagra prices on pharmacyescrow.com's website.

viagra no prescription

August 26. 2010 02:10

why is my computer so slow

Thanks for making the truthful effort to explain this. I feel very strong about it and would like to nkwo more. If you can, as you learn more in depth knowledge, would you mind writing more articles similar to this one with more information?

why is my computer so slow

August 26. 2010 04:26

cheap VOIP

Just now I discovered the web for exactly this kind of information. Thank to your post that search has to end right now. You wrote the post in a very understandable way. With that, I added your blogs as one of my favorites! Cheers!

cheap VOIP

August 26. 2010 09:22

Blogging to the Bank

I enjoyed your posts. There are some very good tutorials here worthy of bookmarking.

Blogging to the Bank

August 26. 2010 14:15

free press release

I'm frustrated with most of these article directories.  I'm looking for a list of article directories that quickly posts my articles.

free press release

August 26. 2010 15:15

Ron-Acid Reflux Treatment

Blogs are a great way to connect strangers, share experience and provide useful information.  You have achieved just that.  Thanks for the share.

Ron-Acid Reflux Treatment

August 26. 2010 16:43

aml

I agree with the previous commenter! This blog is really useful for my uni project. I hope to add more useful posts later.

aml

August 27. 2010 00:11

Brain Exercises

Eeek!  Thanks for sharing.

Brain Exercises

August 27. 2010 02:53

College Student Loan Consolidation

Great post! I'm just starting out in community management/marketing media and trying to learn how to do it well - resources like this article are incredibly helpful. As our company is based in the US, it?s all a bit new to us. The example above is something that I worry about as well, how to show your own genuine enthusiasm and share the fact that your product is useful in that case

College Student Loan Consolidation

August 27. 2010 05:40

Lavonna Lundquist

Nice blog. Happy blogging

Lavonna Lundquist

August 27. 2010 10:21

http://radiolift.com

Do you have the original source of this article? Thanks, Greg

http://radiolift.com

August 27. 2010 11:42

Cursos de inglés

Ha, can't say you're wrong. Just need to get my head around this.

Cursos de inglés

August 27. 2010 12:27

botkier bags

I believe the information described in your publication is really outstanding. I've been working on a preliminary research project regarding this topic and your blog really enlightened me with a number of concerns that I had. I am composing a term paper for college and I?m currently following several blogs for review.

botkier bags

August 27. 2010 17:42

Meat Slicer

Hey this is Jordan. Recently, I've been doing quite a bit of research, can I please use this article in my paper?

Meat Slicer

August 27. 2010 20:07

hgh energizer review

Actually, I’m just beginning in marketing media and starting to learn how to do it well - resources like this blog are incredibly helpful. As our Site is based in the US, it’s all a bit new to us. The case above is something that I worry about as well, how to show your own genuine enthusiasm and contribute to the opportunity.

hgh energizer review

August 28. 2010 00:28

HomeLoan Rates

Good article, but your comments are pretty strange! Hah.

HomeLoan Rates

August 28. 2010 01:46

Stefan Chantler

do you have an rss feed? I want to add it to my reader but I can't find it...

Stefan Chantler

August 28. 2010 02:59

Famous movie quotes

spam, seriously people, get a life and stop killing the blog, it gets irratating when i wanna come on and all i see is spam, whoever owns this site, needs to get rid of it all, anyway, cool post bro, keep it up

Famous movie quotes

August 28. 2010 12:23

Chas Hamacher

This has been well written and has made me question how i feel about the topic. Its a possible viewpoint that i have never considered previously, but i am glad you have. I will give it some thought and return to let you know my feelings, but in the meantime thank you for an intreresting and inspirational perspective

Chas Hamacher

August 28. 2010 13:05

Kittie Enny

I would love to see some more pictures...

Kittie Enny

August 28. 2010 13:14

meizitang

I believe most people would agree with your post. I am going to bookmark this web site so I can come back and read more posts. Keep up the great work!

meizitang

August 28. 2010 13:48

Derek Coplin

I would love to see some more pictures...

Derek Coplin

August 28. 2010 13:51

Joel Desroches

An interesting topic and one that is obviously attracting a lot of interest and potential comments that is healthy. Have added this site to my favourites to revisit. How often do you review and edit your content ?

Joel Desroches

August 28. 2010 17:09

Reid Zahner

do you have an rss feed? I want to add it to my reader but I can't find it...

Reid Zahner

August 29. 2010 00:16

how to cure bad breath

Hi, probably I am being a little bit off topic here, however I had been reading your website and it appears great!. I’m building a website and attempting to make it appear clean, however everytime I touch it I screw something up. Did you build and style the website by yourself? Can somebody with very little knowleadge do it, as well as add frequent updates without messing it up? Anyway, great information on here, extremely helpful.

how to cure bad breath

August 29. 2010 03:01

Blogging to the Bank

Great information here. I enjoyed the tutorials.

Blogging to the Bank

August 29. 2010 03:40

extenze

You had fantastic good ideas here. I did a search on the subject and discovered almost all peoples will agree with your blog.

extenze

August 29. 2010 12:46

provestra

She is just fantastic! All she touches spin to gold, so no matter some chitchats or fabrications about her, she remains on the top. So go girl, the sky is your limit.

provestra

August 29. 2010 13:37

dating affiliate

hey, with so many comments you should add an affiliate program to your blog and make some money...

dating affiliate

August 29. 2010 17:49

semenax

I don’t agree with most guys here; I started reading this post I couldn't stop until , although it wasn't just what I had been looking for, was a great read though. I will instantaneously grab your blog feed to maintain informed of any updates.

semenax

August 29. 2010 18:23

freelance tax

I would very much like to agree with the previous commenter! I find this blog really useful for my uni project. I hope to add more useful posts later.

freelance tax

August 29. 2010 20:57

student driver magnet

Hi, I just found your web site via Bing. Your article is truly applicable to my life at this moment, and I’m really delighted I found your website.

student driver magnet

August 29. 2010 20:59

student driver magnetic signs

Outstanding read, I just passed this onto a colleague who was doing a little investigation on that. And he actually bought me lunch because I found it for him smile So let me rephrase that: Thanks for lunch!

student driver magnetic signs

August 29. 2010 23:52

Web Based Accounting Software

Cheer up!  Tomorrow is another day.

Web Based Accounting Software

August 30. 2010 00:29

dating affiliate

you may make some money if you add an affiliate program to your blog...

dating affiliate

August 30. 2010 06:17

dating affiliate

you may make some money if you add an affiliate program to your blog...

dating affiliate

August 30. 2010 06:38

blonde joke

how can I advertise on your blog?

blonde joke

August 30. 2010 06:42

Laptop Bags

We should all be positive because there is still hope. Very intesting post, thanks.

Laptop Bags

August 30. 2010 11:57

best remortgage deals

If you're looking for the best you have to be committed to looking.

best remortgage deals

August 30. 2010 14:55

magic slim

You had fantastic good ideas here. I did a search on the subject and discovered almost all peoples will agree with your blog.

magic slim

August 30. 2010 18:42

bail baltimore

It's not that I want to copy your web site, but I really like the pattern. Could you let me know which style are you using? Or was it custom made?

bail baltimore

August 30. 2010 18:43

bail bonds baltimore

What you said made a lot of sense.  But, think about this, what if you added a little content?  I mean, I dont want to tell you how to run your blog, but what if you added something to maybe get peoples attention?  Just like a video or a picture or two to get people excited about what youve got to say.  In my opinion, it would make your blog come to life a little bit.

bail bonds baltimore

August 30. 2010 21:45

Jamie Maud

Incredible! Not clear for me, how often u updating your site?

Jamie Maud

August 30. 2010 22:31

dating tips

great blog! I too have one ob dating and seduction tips for guys...

dating tips

August 31. 2010 00:07

payroll company

I was wondering if you ever considered changing the layout of your blog?  Its very well written; I love what youve got to say.  But maybe you could a little more in the way of content so people could connect with it better.  Youve got an awful lot of text for only having one or two images.  Maybe you could space it out better?

payroll company

August 31. 2010 02:43

Terrance Lucore

Substantially, the article is in reality the freshest on this noteworthy topic. I concur with your conclusions and also can eagerly look forward to your forthcoming updates. Saying thanks definitely will not simply be sufficient, for the fantastic lucidity in your writing. I can ideal away grab your rss feed to stay abreast of any kind of updates. Fabulous work and much success in your business endeavors!

Terrance Lucore

August 31. 2010 03:17

mejorar semen

Esta web me gusto , sigan asi ademas te recomiendo que visites <a href=”http://espermax.com”>no me sale semen</a>

mejorar semen

August 31. 2010 13:09

jokes

nice blog! keep the good work!

jokes

August 31. 2010 17:42

make money on the web

I disagree with most people here; I started reading this blog post I couldn't stop until I finished, while it wasn't just what I had been trying to find, was still a great read though. I will instantaneously get your feed to maintain informed of any updates.

make money on the web

August 31. 2010 18:21

plymouth business directory

Always good to read an interesting post on my favourite subject, look forward to the next one - thanks very much.

plymouth business directory

August 31. 2010 20:31

refurbished garmin

Greetings, I'm a college English major and I'm learning a great deal about writing by reviewing blogs. I really love your style of writing. It's easy to understand but with great details. Your choice of words makes it fun to read and comprehend. That's a huge part of writing. Your readers have to be able to understand what you're conveying to them and it has to be exciting. You need to challenge your readers, so they will come back again. You do a awesome job with all of these aspects. Thx!

refurbished garmin

August 31. 2010 20:45

seduction tips blog

good work! keep posting more. I have a dating blog too but it's not so popular like yours..

seduction tips blog

August 31. 2010 22:30

overmantle mirrors

Hi webmaster, commenters and also everybody else !!! The blog was absolutely fantastic! Several perfect information and inspiration, both of which we all require!b Keep 'em coming... you all do such a great work at such Concepts... can't tell you how much I, for one appreciate all you do!

overmantle mirrors

August 31. 2010 23:54

buy virility ex

I am just starting out in management media and working on to find out how to do it well - resources like this blog are a great resource. As our website is based in the US, it’s all a bit new to us. The case above is something that I worry about as well, how to show your own genuine enthusiasm and contribute to the community.

buy virility ex

September 1. 2010 01:17

learn to type

Nice job! Looking for a typing tutor online? Check out my website.

learn to type

September 1. 2010 01:18

learn to type

I enjoyed reading your post! Learn to type faster with typing tutor online.

learn to type

September 1. 2010 03:03

Baby Gifts, New Baby Gifts

I've been recently thinking the similar matter personally recently. Happy to see someone on the same wavelength! Nice article.

Baby Gifts, New Baby Gifts

September 1. 2010 03:16

st petersburg computer repair

Watsup,    I totally agree with you. My companies computer run so much easier with it done. It's unbelievable how much such a simple thing can make such a huge differance. At first I was uneasy about trying it out, but thanks to your help my uneasyness was put to bed. Thanks

st petersburg computer repair

September 1. 2010 04:48

personal trainer

don't spend all the day in front of your computer, go out, exercise, go to the gym twice a week...

personal trainer

September 1. 2010 10:37

registry cleaner reviews

Hey, probably this is a little bit off topic here, however I had been checking your blog and it looks outstanding!. I’m creating a site and attempting to make it appear clean, however every single time I touch it I mess something up. Did you build and style the blogsite by yourself? Can a person with very little knowleadge do it, as well as add frequent updates without messing it up? well, info on here, very helpful.

registry cleaner reviews

September 1. 2010 17:46

hair extensions

hi thank you for this wonderful informative blog

hair extensions

September 1. 2010 19:17

How To Make Solar Panels

Totally new to me; I wasn't aware of the many ripples and depth to the case until I searched here through Bing! Fantastic job.

How To Make Solar Panels

September 1. 2010 19:50

free automobile insurance quotes

If you're still on the fence: grab your favorite earphones, head down to a Best Buy and ask to plug them into a Zune then an iPod and see which one sounds better to you, and which interface makes you smile more. Then you'll know which is right for you.

free automobile insurance quotes

September 1. 2010 19:52

Richard

Interesting post Smile

Richard

September 1. 2010 20:42

learn to type

I enjoyed reading your post! Learn to type faster with typing tutor online.

learn to type

September 1. 2010 20:43

learn to type

Great post! Looking for a typing tutor? Check out my website.

learn to type

September 2. 2010 00:22

niche blue print bonus

Thanks for making a sincere effort to explain this. I feel fairly strong about this and would like to read more. If it's OK, as you find out more in depth knowledge, would you mind writing more articles similar to this one with more tips?

niche blue print bonus

September 2. 2010 02:12

Speed Up PC Guy

Hey Guys. I am kind of following the general idea behind your post, but how does the difference in speed correlate to the software.Will it make a difference if we upgraded the hardware.Thanks

Speed Up PC Guy

September 2. 2010 03:43

Retro Jordans

Wow, cool to see that website, thanks for the link! And thanks for being informative and interesting. You always inspire me.

Retro Jordans

September 2. 2010 04:06

personal training book

don't forgot to get out and exercise...

personal training book

September 2. 2010 07:17

gran turismo 5 deal

relieved

gran turismo 5 deal

September 2. 2010 16:46

Nelson Rollheiser

great blog! keep up the great work!

Nelson Rollheiser

September 2. 2010 16:52

Ranae Sales

i thought this was a really great post to read.  i'll check back for new posts by you!

Ranae Sales

September 2. 2010 17:32

Virility Ex

She is just extraordinary! All she touches converts to gold, so no matter some chitchats or lies about her, she continues on the top. Way to go girl, the sky is your limit.

Virility Ex

September 2. 2010 20:23

Deon Meazell

It's really amazing how bed bugs have made a comeback. When you're a kid, your parents would always say "don't let the bed bugs bite" but we never understood what they were. Now we do. Ewwwww.......

Deon Meazell

September 2. 2010 20:34

Small Business Plan

Its simply nice information you have provided about enums i need of that thanks for sharing . I appreciate you for sharing such nice codes.

Small Business Plan

September 2. 2010 21:30

Virility Ex

She is just wonderful! Everything she touches it turns to gold, so no matter some gossips or lies about her, she stays on the top. So go girl, you're the best

Virility Ex

September 3. 2010 06:01

ETF

any plan to update this blog?

ETF

September 3. 2010 08:10

gift idea

try to change your template, there are some great ones...

gift idea

September 3. 2010 12:00

Bobby D's New Homes

This is interesting, post more often!

Bobby D's New Homes

September 3. 2010 12:31

Isagenix

A good post indeed! That’s the sunny side of your writing, you write in a lucid manner and I have no  difficulty to understand what you have said, even though I am a novice. Keep the good work going by  continue blogging new and entertaining posts.

Isagenix

September 3. 2010 12:33

Isagenix

The articles you have on your website are always so enjoyable to read. Good work and I will be returning often.

Isagenix

September 3. 2010 16:27

cialis

nyhnsscbg, cialis, wecfbttrb

cialis

September 3. 2010 17:41

electronic cigarette

It's the little things that matter, that's what I believe.

electronic cigarette

September 3. 2010 17:51

satellite tv on pc

I don’t agree with most guys here; since I found this blog post I couldn't stop until , although it wasn't just what I had been trying to find, was indeed a great read though. I will instantly get your blog feed to maintain in touch of coming updates.

satellite tv on pc

September 3. 2010 21:32

mixed wrestling

I am really not too familiar with this subject but I do like to visit blogs for layout ideas and interesting topics. You really expanded upon a subject that I usually don't care much about and made it very fascinating. This is a unique blog that I will take note of. I already bookmarked it for future reference. Cheers

mixed wrestling

September 3. 2010 23:07

Job Vacancies

I will tell all my friends neighbor jobs here. I am sure they will like it. Thank you for the information.

Job Vacancies

September 4. 2010 00:00

Carpet Cleaning Minneapolis

Thanks for posting this. I really appreciate it.

Carpet Cleaning Minneapolis

September 4. 2010 03:27

flower delivery athens

Nice effort, very informative, this will help me to complete my task.I really like flowers and also interested to send flowers all over the world.......

flower delivery athens

September 4. 2010 03:27

flower delivery athens

Nice effort, very informative, this will help me to complete my task.I really like flowers and also interested to send flowers all over the world.......

flower delivery athens

September 4. 2010 03:27

flower delivery athens

Nice effort, very informative, this will help me to complete my task.

flower delivery athens

September 4. 2010 11:13

Karaoke Hire Brisbane

Cheers for this site, I was looking at your other posts last week, refreshing..

Karaoke Hire Brisbane

September 4. 2010 12:55

ray ban shop

I completely agree with the earlier opinion, the web is actually without a doubt expanding in to the key form of communication throughout the world and it's because of to web-sites such as this that ideas are distributing so speedily.

ray ban shop

September 4. 2010 15:20

Issac Maez

wecfqwescscde, cialis ,sfdhtrb

Issac Maez

September 4. 2010 20:42

body cleanse

I prefer to look on the brighter side of things which I'm sure you can appreciate.

body cleanse

September 5. 2010 05:42

Autos

Great points you make here, agree with just about everything.

Autos

September 5. 2010 07:41

detoxing

It's a beautiful country, more people need to recognise that.

detoxing

September 5. 2010 07:43

co q10

This really needs to be looked at a lot close if we're ever going to find a solution.

co q10

September 5. 2010 07:44

cheap adidas sportswear

The key is plenty of exercise.

cheap adidas sportswear

September 5. 2010 09:52

{Diablo 2|Diablo 3}

Nice blog! but my interesting is diablo 2 , and another computer gamesSmile

{Diablo 2|Diablo 3}

September 5. 2010 09:59

ETF newsletter

do you have a different blog where you post more often?

ETF newsletter

September 5. 2010 10:27

Najgorszy serwis o muzyce poważnej

Don't go!

Najgorszy serwis o muzyce poważnej

September 5. 2010 18:03

Christi Gargani

Credit card fraud & identity theft. An article on the increasing problem of online fraudulent transactions. Review our many free internet marketing, ...

Christi Gargani

September 5. 2010 22:33

Cortney Allgaier

Nice read thanks for sharing, I have added this to my propella bookmarks.

Cortney Allgaier

September 6. 2010 03:54

ETF newsletter

just bookmarked your blog...

ETF newsletter

September 6. 2010 15:52

Stevie

Interesting blog, not like many others arround!

Stevie

September 7. 2010 02:33

hot stocks

nice blog but it deserve a better theme...

hot stocks

September 7. 2010 02:46

iphone-accessories

It's crazy this gets written about so little, I'm sure the demand is there.

iphone-accessories

September 7. 2010 02:48

iphone-accessories

I don't completely agree, but the principle is right, and you're heart is in the right place.

iphone-accessories

September 7. 2010 04:27

Carpet Cleaning Philadelphia

Thank you for your blog post.Much thanks again. Fantastic.

Carpet Cleaning Philadelphia

September 7. 2010 06:34

stocks trading

nice blog but it deserve a better theme...

stocks trading

September 7. 2010 10:16

Consignment

Hello,I love reading through your blog, I wanted to leave a little comment to support you and wish you a good continuation. Wishing you the best of luck for all your blogging efforts.

Consignment

September 7. 2010 12:56

Free Microsoft Points

What a blog post!! Very informative and easy to understand. Looking for more such blogposts!! Do you have a myspace?

Free Microsoft Points

September 7. 2010 15:23

Eliza Breaken

Hi,very informative thank you for a nice site

Eliza Breaken

Add comment


(Will show your Gravatar icon)

  Country flag

biuquote
  • Comment
  • Preview
Loading