Let's call him J. S. Crypt
-
...because his code (yes, I know it's a "he") and style reminds me of stuff I've seen in Javascript and other script languages.
public void Foo()
{
var SomeList = new ArrayList();
SomeList = getSomeList();if (SomeList.Count != 0) { foreach (string Item in SomeList) { var S = Item.Split(','); var S0 = s\[0\]; var S1 = s\[1\]; var S2 = s\[2\]; var S3 = s\[3\]; ... } } } private static ArrayList getSomeList() { var List = new ArrayList(); ... List.Add(N1 + "," + N2 + "," + N3 + "," + N3); ... return List; }
Variable names have for the most part been changed to protect the innocent. Things that got me laughing, cringing, and crying: 1. Useless initialization of SomeList 2. Well, if the count is 0, the
foreach
won't execute 3. Obviously never heard ofout
variables, or even returning a struct/class with the parsed data. Instead, he creates a concatenated string, then parses it back out! And not exactly internationalized, the chaos that would occur if one or more of the numbers was1234,56
4. Why a static method? It's referenced once, in the above call. And this is just the beginning! (I do believe this code was written in the .NET 2.0 days before generics -- I have other clues to that -- but that's no excuse.) MarcV.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Did you notice this?
List.Add(N1 + "," + N2 + "," + N3 + "," + N3);
N3 is added twice. N4 is never added.
-
Did you notice this?
List.Add(N1 + "," + N2 + "," + N3 + "," + N3);
N3 is added twice. N4 is never added.
-
I thought he copied the code and changed what he wanted to preserve identity... So, it must be part of the real one. I think.
-
...because his code (yes, I know it's a "he") and style reminds me of stuff I've seen in Javascript and other script languages.
public void Foo()
{
var SomeList = new ArrayList();
SomeList = getSomeList();if (SomeList.Count != 0) { foreach (string Item in SomeList) { var S = Item.Split(','); var S0 = s\[0\]; var S1 = s\[1\]; var S2 = s\[2\]; var S3 = s\[3\]; ... } } } private static ArrayList getSomeList() { var List = new ArrayList(); ... List.Add(N1 + "," + N2 + "," + N3 + "," + N3); ... return List; }
Variable names have for the most part been changed to protect the innocent. Things that got me laughing, cringing, and crying: 1. Useless initialization of SomeList 2. Well, if the count is 0, the
foreach
won't execute 3. Obviously never heard ofout
variables, or even returning a struct/class with the parsed data. Instead, he creates a concatenated string, then parses it back out! And not exactly internationalized, the chaos that would occur if one or more of the numbers was1234,56
4. Why a static method? It's referenced once, in the above call. And this is just the beginning! (I do believe this code was written in the .NET 2.0 days before generics -- I have other clues to that -- but that's no excuse.) MarcV.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Possibly a cut and paste job from the internet by someone not familiar with C#, .NET or programming in general. Could well be a port out of C, C++ or VB6. Things like a private static method and module/global variables could be an artifact of another language.
-
...because his code (yes, I know it's a "he") and style reminds me of stuff I've seen in Javascript and other script languages.
public void Foo()
{
var SomeList = new ArrayList();
SomeList = getSomeList();if (SomeList.Count != 0) { foreach (string Item in SomeList) { var S = Item.Split(','); var S0 = s\[0\]; var S1 = s\[1\]; var S2 = s\[2\]; var S3 = s\[3\]; ... } } } private static ArrayList getSomeList() { var List = new ArrayList(); ... List.Add(N1 + "," + N2 + "," + N3 + "," + N3); ... return List; }
Variable names have for the most part been changed to protect the innocent. Things that got me laughing, cringing, and crying: 1. Useless initialization of SomeList 2. Well, if the count is 0, the
foreach
won't execute 3. Obviously never heard ofout
variables, or even returning a struct/class with the parsed data. Instead, he creates a concatenated string, then parses it back out! And not exactly internationalized, the chaos that would occur if one or more of the numbers was1234,56
4. Why a static method? It's referenced once, in the above call. And this is just the beginning! (I do believe this code was written in the .NET 2.0 days before generics -- I have other clues to that -- but that's no excuse.) MarcV.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
If you are hyper-optimizing code, you can avoid allocation of an enumerator object by checking the count first if you expect that it will often contain 0 items. That said, it is obvious that this guy probably wouldn't know that, but worth noting. We've done it in very performance sensitive code that might be called many times in a tight loop.
-
If you are hyper-optimizing code, you can avoid allocation of an enumerator object by checking the count first if you expect that it will often contain 0 items. That said, it is obvious that this guy probably wouldn't know that, but worth noting. We've done it in very performance sensitive code that might be called many times in a tight loop.
Better to avoid
foreach
whenever possible. If there's aCount
, it's probably indexable, so usefor
instead. -
Better to avoid
foreach
whenever possible. If there's aCount
, it's probably indexable, so usefor
instead.For performance sensitive code that could be used in long tight loops I agree, but "whenever" I don't agree with. In 95% of code it will make zero difference, so the readability and simplicity of foreach wins.
-
...because his code (yes, I know it's a "he") and style reminds me of stuff I've seen in Javascript and other script languages.
public void Foo()
{
var SomeList = new ArrayList();
SomeList = getSomeList();if (SomeList.Count != 0) { foreach (string Item in SomeList) { var S = Item.Split(','); var S0 = s\[0\]; var S1 = s\[1\]; var S2 = s\[2\]; var S3 = s\[3\]; ... } } } private static ArrayList getSomeList() { var List = new ArrayList(); ... List.Add(N1 + "," + N2 + "," + N3 + "," + N3); ... return List; }
Variable names have for the most part been changed to protect the innocent. Things that got me laughing, cringing, and crying: 1. Useless initialization of SomeList 2. Well, if the count is 0, the
foreach
won't execute 3. Obviously never heard ofout
variables, or even returning a struct/class with the parsed data. Instead, he creates a concatenated string, then parses it back out! And not exactly internationalized, the chaos that would occur if one or more of the numbers was1234,56
4. Why a static method? It's referenced once, in the above call. And this is just the beginning! (I do believe this code was written in the .NET 2.0 days before generics -- I have other clues to that -- but that's no excuse.) MarcV.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Oh, now I am reminded of some ODBC code (in ANSI C) I had thrust upon me in the late-90s -- query results were returned as CSV strings. :omg: I had to write my own version that at least returned sort of an array of strings.
-
Did you notice this?
List.Add(N1 + "," + N2 + "," + N3 + "," + N3);
N3 is added twice. N4 is never added.
Paulo Zemek wrote:
N3 is added twice.
That was my typo. ;) Marc
V.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
-
Paulo Zemek wrote:
N3 is added twice.
That was my typo. ;) Marc
V.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802
Hehe... OK. I thought I was another coding horror... you know, complete lack of testing.