Do you want string or string?
-
OK, by Hall Of Shame standards, this isn't too bad. Still worth sharing...
KeyValuePair lastItem;
//Some code...
if (lastItem.Value != null && lastItem.Value.ToString().Trim() != "")
{
//Some more code...Three things jump out at me: 1. Use of empty string literal instead of
String.Empty
2. Seperate testing of null and empty string instead ofString.IsNullOrEmpty()
3. CallingToString()
on something that is already a string. #1 and #2 isn't too serious, especially if you consider that you also want to trim the string, so you need to check for null before trying to trim anyway. #3, on the other hand, confuses me. Why would you want to callToString()
on a string? -
OK, by Hall Of Shame standards, this isn't too bad. Still worth sharing...
KeyValuePair lastItem;
//Some code...
if (lastItem.Value != null && lastItem.Value.ToString().Trim() != "")
{
//Some more code...Three things jump out at me: 1. Use of empty string literal instead of
String.Empty
2. Seperate testing of null and empty string instead ofString.IsNullOrEmpty()
3. CallingToString()
on something that is already a string. #1 and #2 isn't too serious, especially if you consider that you also want to trim the string, so you need to check for null before trying to trim anyway. #3, on the other hand, confuses me. Why would you want to callToString()
on a string? -
OK, by Hall Of Shame standards, this isn't too bad. Still worth sharing...
KeyValuePair lastItem;
//Some code...
if (lastItem.Value != null && lastItem.Value.ToString().Trim() != "")
{
//Some more code...Three things jump out at me: 1. Use of empty string literal instead of
String.Empty
2. Seperate testing of null and empty string instead ofString.IsNullOrEmpty()
3. CallingToString()
on something that is already a string. #1 and #2 isn't too serious, especially if you consider that you also want to trim the string, so you need to check for null before trying to trim anyway. #3, on the other hand, confuses me. Why would you want to callToString()
on a string?I think a coder is stringing you along. :)
Chris Meech I am Canadian. [heard in a local bar] In theory there is no difference between theory and practice. In practice there is. [Yogi Berra] posting about Crystal Reports here is like discussing gay marriage on a catholic church’s website.[Nishant Sivakumar]
-
OK, by Hall Of Shame standards, this isn't too bad. Still worth sharing...
KeyValuePair lastItem;
//Some code...
if (lastItem.Value != null && lastItem.Value.ToString().Trim() != "")
{
//Some more code...Three things jump out at me: 1. Use of empty string literal instead of
String.Empty
2. Seperate testing of null and empty string instead ofString.IsNullOrEmpty()
3. CallingToString()
on something that is already a string. #1 and #2 isn't too serious, especially if you consider that you also want to trim the string, so you need to check for null before trying to trim anyway. #3, on the other hand, confuses me. Why would you want to callToString()
on a string?If the codebase originated from a dotNet1.1 codebase, then the statement makes complete sense because string.IsNullOrEmpty did not exist at that time. Something that would definitely get updated in a code review: yes, Horror: close, but not quite.
I wasn't, now I am, then I won't be anymore.
-
OK, by Hall Of Shame standards, this isn't too bad. Still worth sharing...
KeyValuePair lastItem;
//Some code...
if (lastItem.Value != null && lastItem.Value.ToString().Trim() != "")
{
//Some more code...Three things jump out at me: 1. Use of empty string literal instead of
String.Empty
2. Seperate testing of null and empty string instead ofString.IsNullOrEmpty()
3. CallingToString()
on something that is already a string. #1 and #2 isn't too serious, especially if you consider that you also want to trim the string, so you need to check for null before trying to trim anyway. #3, on the other hand, confuses me. Why would you want to callToString()
on a string?Refactoring Fail. To match the original functionality what you need is
String.IsNullOrWhiteSpace()
.String.IsNullOrEmpty(lastItem.Value)
will return false iflastItem.Value
equals " ".String.IsNullOrEmpty(lastItem.Value.Trim())
will exception iflastItem.Value
is null. My other question would be how old the codebase is?IsNullOrEmpty()
wasn't added until .net 2.0;IsNullOrWhiteSpace()
wasn't added until 4.0. I wrote an IsNullOrEmpty() method when I needed one in a 1.1 app; but unless you're doing it in multiple locations there's nothing wrong with inlining.Did you ever see history portrayed as an old man with a wise brow and pulseless heart, waging all things in the balance of reason? Is not rather the genius of history like an eternal, imploring maiden, full of fire, with a burning heart and flaming soul, humanly warm and humanly beautiful? --Zachris Topelius Training a telescope on one’s own belly button will only reveal lint. You like that? You go right on staring at it. I prefer looking at galaxies. -- Sarah Hoyt
-
OK, by Hall Of Shame standards, this isn't too bad. Still worth sharing...
KeyValuePair lastItem;
//Some code...
if (lastItem.Value != null && lastItem.Value.ToString().Trim() != "")
{
//Some more code...Three things jump out at me: 1. Use of empty string literal instead of
String.Empty
2. Seperate testing of null and empty string instead ofString.IsNullOrEmpty()
3. CallingToString()
on something that is already a string. #1 and #2 isn't too serious, especially if you consider that you also want to trim the string, so you need to check for null before trying to trim anyway. #3, on the other hand, confuses me. Why would you want to callToString()
on a string? -
In .NET 4, there is IsNullOrWhiteSpace[^] as well, which is even more useful!
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
-
In .NET 4, there is IsNullOrWhiteSpace[^] as well, which is even more useful!
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
-
Did you scroll down to the end?
VB Programmers: Null means Nothing in this method name
If it means nothing, then why did they put it into the name? :)
I'm invincible, I can't be vinced
Yep! And I have no problem with that at all... :-D
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
-
I was told that string.Empty doesn't create a whole bunch of new string instances. I will keep that quote from the MSDN guy to hand for next time I'm told using "" is wrong. (I prefer it too because two characters is almost always better then 11 and it's immediately obvious what "" is without actually having to read a word.)
-
OK, by Hall Of Shame standards, this isn't too bad. Still worth sharing...
KeyValuePair lastItem;
//Some code...
if (lastItem.Value != null && lastItem.Value.ToString().Trim() != "")
{
//Some more code...Three things jump out at me: 1. Use of empty string literal instead of
String.Empty
2. Seperate testing of null and empty string instead ofString.IsNullOrEmpty()
3. CallingToString()
on something that is already a string. #1 and #2 isn't too serious, especially if you consider that you also want to trim the string, so you need to check for null before trying to trim anyway. #3, on the other hand, confuses me. Why would you want to callToString()
on a string? -
Yes, I know there's no difference and that it's a matter of personal taste, so the worst that can happen is that it might mildly annoy a maintenance programmer that expected a different coding style. That said, I probably should have mentioned earlier that it happens to be in a codebase in which things like this is discouraged. In fact, string literals in general are discouraged: there should be a separate class full of constants. This means that the code above sticks out like a sore thumb around here.
-
Sometimes you just have to make absolutely sure it is a string. And since it is OO programming they could have done this:
lastItem.Value.ToString().ToString().ToString().Trim()
just to make really, really sure.
I like that! But you know, sometimes you want to be a little more sure than other times. Therefore, I propose the that following method be added:
public static string ConvertToString(object objectToConvert, ulong howSureDoYouWantToBeThatItIsString)
{
string temp = objectToConvert.ToString();
for(ulong n = 0; n < howSureDoYouWantToBeThatItIsString; n++)
{
temp = temp.ToString();
}
return temp;
}Now ain't that a piece of beauty!
-
If the codebase originated from a dotNet1.1 codebase, then the statement makes complete sense because string.IsNullOrEmpty did not exist at that time. Something that would definitely get updated in a code review: yes, Horror: close, but not quite.
I wasn't, now I am, then I won't be anymore.
+1 plus they wouldn't know generics, thus the need to cast to String.
'As programmers go, I'm fairly social. Which still means I'm a borderline sociopath by normal standards.' Jeff Atwood 'I'm French! Why do you think I've got this outrrrrageous accent?' Monty Python and the Holy Grail
-
Yep! And I have no problem with that at all... :-D
Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water
-
Did you scroll down to the end?
VB Programmers: Null means Nothing in this method name
If it means nothing, then why did they put it into the name? :)
I'm invincible, I can't be vinced
-
OK, by Hall Of Shame standards, this isn't too bad. Still worth sharing...
KeyValuePair lastItem;
//Some code...
if (lastItem.Value != null && lastItem.Value.ToString().Trim() != "")
{
//Some more code...Three things jump out at me: 1. Use of empty string literal instead of
String.Empty
2. Seperate testing of null and empty string instead ofString.IsNullOrEmpty()
3. CallingToString()
on something that is already a string. #1 and #2 isn't too serious, especially if you consider that you also want to trim the string, so you need to check for null before trying to trim anyway. #3, on the other hand, confuses me. Why would you want to callToString()
on a string? -
I like that! But you know, sometimes you want to be a little more sure than other times. Therefore, I propose the that following method be added:
public static string ConvertToString(object objectToConvert, ulong howSureDoYouWantToBeThatItIsString)
{
string temp = objectToConvert.ToString();
for(ulong n = 0; n < howSureDoYouWantToBeThatItIsString; n++)
{
temp = temp.ToString();
}
return temp;
}Now ain't that a piece of beauty!
I like that! I wanted to see how many times that is possible to be looped: 18,446,744,073,709,551,615. That's a few loops. I figure, on my 2GH machine, that's approximately 272.19712525667353 years. (probably double that because 1 flop per loop and 1 flop per string conversion)
double years = (double)((ulong.MaxValue / int.MaxValue) / (3600 \* 24)) / 365.25;
flop = "FLoating point OPeration" Is it 1 or 2000 flops per string conversion for a 2000 character string? ;) PS Yes, I'm having fun with people without an understanding of precision too.
-
OK, by Hall Of Shame standards, this isn't too bad. Still worth sharing...
KeyValuePair lastItem;
//Some code...
if (lastItem.Value != null && lastItem.Value.ToString().Trim() != "")
{
//Some more code...Three things jump out at me: 1. Use of empty string literal instead of
String.Empty
2. Seperate testing of null and empty string instead ofString.IsNullOrEmpty()
3. CallingToString()
on something that is already a string. #1 and #2 isn't too serious, especially if you consider that you also want to trim the string, so you need to check for null before trying to trim anyway. #3, on the other hand, confuses me. Why would you want to callToString()
on a string?Maybe he was thinking of the 'String' theory! Yeah, I know, it's a groaner.
Attempting to load signature... A NullSignatureException was unhandled. Message: "No signature exists"