Laden...

Coding Styles Horror

Erstellt von Khalid vor 15 Jahren Letzter Beitrag vor 3 Jahren 364.577 Views
2.298 Beiträge seit 2010
vor 13 Jahren

While & else? Fehlt da was oder wollt er dich verschaukeln?

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

1.002 Beiträge seit 2007
vor 13 Jahren

Hallo,

ich hätte jetzt auf ein if statt auf ein while und auf == statt = getippt ...

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

187 Beiträge seit 2009
vor 13 Jahren

vor ein paar Tagen von schwedischen Kollegen:

public bool IsListconntSmalleThaOne(IList<IContact> listOfResults) {
  if (listOfResults.Count >= 1)
  {
    return false;
  }
  else
  {
    return true;
  }
}
F
240 Beiträge seit 2006
vor 13 Jahren

haste das auch auf dailywtf gepostet?

187 Beiträge seit 2009
vor 13 Jahren

haste das auch auf dailywtf gepostet?

Nee das kam anfang der Woche in ner Kettenmail.
Aber auf der Seite wird das auch schon heftig diskutiert.

EDIT:
Danke für die Seite, mit arbeiten wird das heute nichts mehr 😉

Gelöschter Account
vor 13 Jahren
            try
            {
                ...
                throw new Expection(...);
            }
            catch (Expection)
            {
                ...
            }
        }
    }

    public class Expection : Exception
    {
        ...
    }

der verantworliche war wohl auf einem trip?

2.298 Beiträge seit 2010
vor 13 Jahren

Bis auf das Erben der Exception hab ich ähnliches auch schon programmiert, dies hing aber mit den Umständen zusammen.

Heut weis ich, dass ich keine Exception selbst werfe wenn diese sowieso direkt wieder gefangen wird...

Also in dem Fall: Ob der verantwortliche dafür auf einem Trip war kann ich nicht sagen. - Aber für sowas muss ich mir selbst auch auf die Finger haun.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

Gelöschter Account
vor 13 Jahren

... ich fand eher den namen erwähnenswert... und ich bezweifle das du das schon mal programmiert hast, ohne von exception zu erben, da man nichts fangen kann, das nicht von exception erbt....

2.082 Beiträge seit 2005
vor 13 Jahren

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de

2.298 Beiträge seit 2010
vor 13 Jahren

Gut wenn du direkt die Exception meinst, nein das hab ich nicht getan... wozu auch? Hatte bisher noch keinen Fall wo ich eigene Exceptions brauchte.

// Edit: Und ansosnten reicht eine einfache ApplicationException...

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

1.665 Beiträge seit 2006
vor 13 Jahren

Er (Mitarbeiter): Die Operation [...] läuft nun wieder synchron.

Chef: Ab X Operationen macht eine ProgressBar Sinn...

Ich: Ja, wird aber so nicht gehen. Man wird keinen Fortschritt sehen.

[Stille, verwirrte Blicke]

Er: Warum nicht?

Ich: Die Operationen laufen ja nun wieder im GUI Thread, wie solll das denn funktionieren?

Er: Wozu gibts denn Application.DoEvents() ?

Ich: -_________-

Das nenne ich horror...
Das Beste ist, dass diese Antwort keine Reaktion bei meinem Chef hervorgerufen hat.

1.985 Beiträge seit 2004
vor 13 Jahren

Hallo zusammen,

Das nenne ich horror...
Das Beste ist, dass diese Antwort keine Reaktion bei meinem Chef hervorgerufen hat.

sehr schön 😃. Ich musste schmunzeln. Hätte mich eher gewundert, wenn diese Antwort eine Reaktion bei Deinem Chef hervorgerufen hätte.

Gruß,
Fabian

"Eine wirklich gute Idee erkennt man daran, dass ihre Verwirklichung von vornherein ausgeschlossen erscheint." (Albert Einstein)

Gefangen im magischen Viereck zwischen studieren, schreiben, lehren und Ideen umsetzen…

Blog: www.fabiandeitelhoff.de

T
574 Beiträge seit 2008
vor 13 Jahren
// Is there a selected item?
if (!string.IsNullOrEmpty(item))
{
    // Show the edit elements
    ccEdit.Visibility = Visibility.Visible;
}
else
{
    // Hide the edit elements
    ccEdit.Visibility = Visibility.Collapsed;
}

Kein Kommentar (ROFL)

2.298 Beiträge seit 2010
vor 13 Jahren

Also für mich macht das durchaus Sinn?

Je nachdem um was für eine Methode (evtl. EventHandler Methode) handelt, ist das sogar wirklich Sinnvoll. - Beispiel:

Ist in einem Buttn ClickHandler, der Button soll dafür sorgen, dass die Elemente angezeigt werden. Ist nichts in der Liste ausgewählt und es wird etwas angezeigt muss das Zwangsläufig ausgeblendet werden. - Und umgekehrt.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

F
240 Beiträge seit 2006
vor 13 Jahren

Also für mich macht das durchaus Sinn?


ccEdit.Visibility = !string.IsNullOrEmpty(item) ? Visibility.Visible : Visibility.Collapsed;

2.298 Beiträge seit 2010
vor 13 Jahren
  
ccEdit.Visibility = !string.IsNullOrEmpty(item) ? Visibility.Visible : Visibility.Collapsed;  
  

Soll ich ehrlich sein? Allein Aufgrund der Lesbarkeit würde ich die Langform bevorzugen.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

1.373 Beiträge seit 2004
vor 13 Jahren

Hallo,

Sehe ich ähnlich, ich würde es auch nicht so kompakt schreiben. Das hier ist z.B. mMn lesbarer und kommt ohne Kommentare aus:


public void UpdateEditItemsVisibility()
{
  if (IsAnyItemSelected)
  {
    ShowEditElements();
  }
  else
  {
    HideEditElements();
  }
}

private bool IsAnyItemSelected
{
  get { return !string.IsNullOrEmpty(item); }
}

private void ShowEditElements()
{
  ccEdit.Visibility = Visibility.Visible;
}

private void HideEditElements()
{
  ccEdit.Visibility = Visibility.Collapsed;
}

Grüße,
Andre

458 Beiträge seit 2007
vor 13 Jahren

Ich wuerde eher


public void UpdateEditItemsVisibility()
{
  this.SetEditElementsVisibility(IsAnyItemSelected);
}

private bool IsAnyItemSelected
{
  get { return !string.IsNullOrEmpty(item); }
}

private void SetEditElementsVisibility(bool visibility)
{
  this.ccEdit.Visibility = visibility;
}


bevorzugen, ist aber geschmackssache.

be the hammer, not the nail!

Hinweis von herbivore vor 13 Jahren

Vor lauter Kommentaren zu den eigentlichen Coding Styles Horrors sieht man dieselben kaum noch. Das Thema des Threads ist auch nicht, zu jedem Horror eine bessere Lösung zu finden (das ist ohne Weiteres immer möglich, sonst wäre es ja kein Horror), sondern einfach die Leser an besonderes grausamen Konstruktionen teilhaben zu lassen. Bitte lasst daher den Horror unkommentiert.

T
574 Beiträge seit 2008
vor 13 Jahren
// Constructor
public ThumbnailImageGenerator()
{
    //nothing
}

Code vom selben (ehemaligen) Mitarbeiter wie letzter Auszug

390 Beiträge seit 2008
vor 13 Jahren

Was ist an einem leeren Konstruktor so horrormässig?

using Skill

U
1.578 Beiträge seit 2009
vor 13 Jahren

Wenn man ein Spezifizierten ctor UND einen leeren anbieten will muss man den leeren auch angeben da durch den Spezifizierten der Default ctor überschrieben wird.

Das ist alles andere außer Coding Style Horror.

T
574 Beiträge seit 2008
vor 13 Jahren

Was ist an einem leeren Konstruktor so horrormässig?

nichts, es geht ums "nothing"

F
60 Beiträge seit 2010
vor 13 Jahren

Also der //Constructor Kommentar ist wirklich Horror, ein //Nothing allerdings lesbarer als {} oder {;}. Allerdings spricht auch nix gegen // Explicit default constructor 😃

2.298 Beiträge seit 2010
vor 13 Jahren

Ich find beides keinen Horror... Lieber schreib ich da Constructor hin, als dass einer kommt der keine Ahnung von C# hat und meint "Unnötige Methode weg damit".

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

Hinweis von herbivore vor 13 Jahren

Ich muss mich leider nochmal wiederholen und um Beachtung bitten: Vor lauter Kommentaren zu den eigentlichen Coding Styles Horrors sieht man dieselben kaum noch. Das Thema des Threads ist auch nicht, zu jedem Horror eine bessere Lösung zu finden (das ist ohne Weiteres immer möglich) oder ellenlang darüber zu diskutieren, welchen Horrorgrad der Code auf einer Skala von 0 bis 100 hat, sondern einfach andere besonderes grausamen Konstruktionen teilhaben zu lassen.

1.373 Beiträge seit 2004
vor 13 Jahren

Hallo,

Gerade hier im Forum gesehen:


var res = (from b in begrgr
        where
            (from bb1 in begrgbez
            where
                !
                (from bb2 in begrgbez
                    select new
                    {
                        bb2.Id_BegrGr2
                    }).Contains(new BegrGBez { Id_BegrGr1 = bb1.Id_BegrGr1 })
            group bb1 by new
            {
                bb1.Id_BegrGr1
            } into g
            select new
            {
                Id_BegrGr1 = (System.Int16?)g.Key.Id_BegrGr1
            }).Contains(new { b.Id_BegrGr })
        select new
        {
            b.Id_BegrGr
        }).Count();

Quelle: Linq Ausdruck: Syntaxfehler (type arguments cannot be inferred/cannot convert AnonymousType#1)

Die Komplexität des Ausdrucks und die Namensgebung sind "atemberaubend".

Grüße,
Andre

S
42 Beiträge seit 2010
vor 13 Jahren

Wo wir grad bei aussagekräftigen Variablennamen sind:

	//screenshot. 
		const char *screenPath = (const char*)aDataBaseFile;
		char* tmp3;
		size_t laenge;
		//delete[] aDataBaseFile;
		if (scsh!=0){	
			std::string qwer;
			qwer.append(screenPath);
			qwer.append("\\");
			qwer.append("screenShot");
			qwer.append(".bmp");
			laenge = qwer.length();
			tmp3 = new char [ laenge + 1 ];
			strcpy( tmp3, qwer.c_str() );
			SaveScreen(tmp3,aLeft,aTop,width,height);
		}


	//######################String-Operationen für den Aufruf von ImageSearch######################
	//findet die Länge des Pfades directoryLetters heraus, Voraussetzung ist, dass er auf "\0" endet. 
		char jkl;
		int asdf = 0;
		do{
			jkl = (char)directoryLetters[asdf];
			asdf++;
		}
		while (jkl!='\0');
2.298 Beiträge seit 2010
vor 13 Jahren

Da hab ich doch auch mal was interessantes gefunden...

Ist eine Methode die eine Verbindung via Remoting von Client Seite aus beenden soll:


public void Disconnect()
		{
			try
			{
				if (this._interface != null)
				{
					// ??
				}
			}
			finally
			{
				this._connection = State.NotConnected;
			}
		}

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

C
112 Beiträge seit 2009
vor 13 Jahren

Moin, bin leider erst heute über diesen unterhaltsamen Thread gestolpert.
Mir ist vor einiger Zeit folgendes Konstrukt untergekommen:


switch(Wert) {
case "Wert_A","Wert_B" :
    if(Wert.Equals("Wert_A") {
    ...
    }
    if(Wert.Equals("Wert_B"){
     ...
    }
....
5.742 Beiträge seit 2007
vor 13 Jahren

Und mir begegnete heute C++ Code, der ein XML-Dokument parsen sollte und dessen C# Äquivalent in etwa so aussah (Namen angepasst):


XmlNodeList nodes = document.SelectNodes("Items//Item");
for (int i = 0; i < nodes.Count; i++)
{
    string text = nodes[i].InnerText;

    switch (i)
    {
        case 0: //Titel
            person.Title = text;
            break;
        case 1: //Name
            person.Name = text;
            break;
        case 2: //Geburtsdatum
            person.Birthday = Convert.ToDateTime(text);
            break;
        //und noch 3 weitere davon
        default:
            break;
    }
}

Und sehr in der Nähe auch in etwa dieses "Prachtstück" (im originalen waren es sogar zwei Flags, die so "ausgewertet" wurden):


//...
string flag = "";
DoFoo(/*ein paar weitere Parameter*/, ref flag);
if (flag.CompareTo("1") == 0)
   wert = "0";

//...
void DoFoo(/*...*/, ref flag)
{
    string s = //...
    flag = Convert.ToInt32(!Convert.ToBoolean(s)).ToString();
    //...
}

1.002 Beiträge seit 2007
vor 13 Jahren

Hallo zusammen,

auch eine Perle:

if (Session["sessionid"] == null)
{
    Response.Redirect("Login.aspx");
}
else if (Session["value"] == null)
{
    Response.Redirect("Login.aspx");
}

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

6.862 Beiträge seit 2003
vor 13 Jahren

Hallo,

uns ist letztens Code in dieser Form übern Weg gelaufen:


...
ObjectABC.XYZ = null;
if(ObjectABC.XYZ == null) {
  throw new FooException(...);
}
...

Trotz dieses Code wurde die FooException nicht geworfen was einfach daran lag, dass XYZ nen recht komplexes Property ist welches beim null setzen bestimmte Aktionen ausführt und wirklich nur im Fehlerfall null im get zurückgibt. Hier wollte jemand wohl auf eine, als solche erkennbare, Funktion verzichten und hat ein Property dazu benutzt - set als Übergabeparameter und get als Rückgabewert 😉

Baka wa shinanakya naoranai.

Mein XING Profil.

C
252 Beiträge seit 2007
vor 13 Jahren
Hinweis von herbivore vor 13 Jahren

Beitrag hier eingefügt

Beste Source Code Kommentare

Ich bin zufällig grad über folgende Seite gestolpert: Beste Kommentare

Evtl sind euch ja auch schon solche Perlen untergekommen.
Da sind schon einige Klassiker dabei:


Exception up = new Exception("Something is really wrong.");
throw up;  //ha ha


/* This is O(scary), but seems quick enough in practice. */


#define TRUE FALSE //Happy debugging suckers


// I don't know why I need this, but it stops the people being upside-down
x = -x;


ICantBelieveImUsingAGoto:


// If you're reading this, that means you have been put in charge of my previous project.
// I am so, so sorry for you. God speed.

1.130 Beiträge seit 2007
vor 13 Jahren

Ich habe grade folgendes in einem opensourceprojekt gefunden:
(sinngemäß wiedergegeben)


 switch(messageId)
{
   case bla:
       //code
       break;
   case blub:
       //code
       break;

            #define PARSEMESSAGES 1
            #include "capture.h"
            #include "ctf.h"
            #undef PARSEMESSAGES

    case foo:
       //code
       break;
    default:
        handleError();
        return;
}

Und innerhalb dieser header ist dann folgendes:

#ifndef PARSEMESSAGES
foo()
{
//Code
}

struct bar
{
//Code
}

....
#else
    case meldung1:
//Code
        break;
    case meldung2:
//Code
        break;
#endif

Sehr kreativ, aber wer soll da durchstiegen...

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

gerade hier im Forum gesehen 😉



 string[] aufgeteilt1 = teil1.Split(new Char[] { '+' });
         



           if (aufgeteilt1[0] != "")
           {
               strEingabe1 = aufgeteilt1[0];
               if (aufgeteilt1[1] != "")
               {
                   strEingabe2 = aufgeteilt1[1];
                   if (aufgeteilt1[2] != "")
                   {
                       strEingabe3 = aufgeteilt1[2];
                       if (aufgeteilt1[3] != "")
                       {
                           strEingabe4 = aufgeteilt1[3];
                           if (aufgeteilt1[4] != "")
                           {
                               strEingabe5 = aufgeteilt1[4];
                               if (aufgeteilt1[5] != "")
                               {
                                   strEingabe6 = aufgeteilt1[5];
                                   if (aufgeteilt1[6] != "")
                                   {
                                       strEingabe7 = aufgeteilt1[6];
                                       if (aufgeteilt1[7] != "")
                                       {
                                           strEingabe8 = aufgeteilt1[7];
                                           if (aufgeteilt1[8] != "")
                                           {
                                               strEingabe9 = aufgeteilt1[8];
                                               if (aufgeteilt1[9] != "")
                                               {
                                                   Console.WriteLine("Die Rechnung ist zu lange");
                                                   Console.ReadKey();
                                               }

                                               else { }
                                           }
                                           else { }
                                       }
                                       else { }
                                   }
                                   else { }
                               }
                               else { }
                           }
                           else { }
                       }
                       else { }
                   }
                   else { }
               }
               else { }
           }
           else { }

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

731 Beiträge seit 2006
vor 13 Jahren

Mal eben den Sinn eines Arrays hinfällig gemacht... 😄

4.221 Beiträge seit 2005
vor 13 Jahren

(He Leute es ist Herbst... die Vögel ziehen gen Süden sieht doch wirklich aus wie ein Schwarm Vögel im Formationsflug

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

R
295 Beiträge seit 2008
vor 13 Jahren
int y2 = rand() % 2; 
//... 
switch (y2) 
{ 
case 1: /*...*/ 
case 2: /*...*/ 
case 3: /*...*/ 
} 

X(

ServiceStack & Angular = =)

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

aus einem OpenSource-Project:


bb.Check = YesNoEnum.Yes

🤔

Das Enum hat tatsachlich nur Yes/No.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

175 Beiträge seit 2010
vor 13 Jahren

Das Enum hat tatsachlich nur Yes/No.

Wie habe ich erst letztens in einem Buch gelesen: Code soll für Veränderungen geschlossen, aber für Erweiterungen offen sein.

Wer weiss, vielleicht wollte der Entwickler sich ja kreativen Freiraum lassen für Enum.Maybe, Enum.Perhaps, Enum.DoNotKnowYet oder Enum.DoesNotMatter 😉

See ya,
Michael

Debuggers don't remove Bugs, they only show them in Slow-Motion.

U
208 Beiträge seit 2008
vor 13 Jahren

Wer weiss, vielleicht wollte der Entwickler sich ja kreativen Freiraum lassen für Enum.Maybe, Enum.Perhaps, Enum.DoNotKnowYet oder Enum.DoesNotMatter 😉 Dann müsste er aber auch jedes Mal das YesNoEnum mit umbenennen. In YesNoMaybeEnum, YesNoMaybePerhapsEnum usw. 😁

U
1.578 Beiträge seit 2009
vor 13 Jahren

Also gegen ein enum Yes|No hätte ich nichts, nur die Namensgebung YesNoEnum ist der wirkliche Coding Horror

390 Beiträge seit 2008
vor 13 Jahren

Yes|No macht darum keinen Sinn, da es genau dasselbe ist wie true|false. In einer eigenen Klassenbibliothek mag das vielleicht Sinn machen. Sobald man aber auf FW Komponenten zurückgreifen muss oder mehrere Yes|No Ausdrücke verknüpfen möchte, muss man diese wieder in bool konvertieren.

using Skill

Hinweis von gfoidl vor 13 Jahren

Die Sinnhaftigkeit davon bitte in diesem Thread nicht weiter diskutieren.

1.130 Beiträge seit 2007
vor 13 Jahren

Passt zwar nur so halb hier rein, aber was der c#-compiler so verzapft wenn man folgendes compiliert, ist eindeutig coding styles horror auf msil ebene!


object obj=....
if(obj is string)
{
    //mach was
}

Daraus wird folgender code:


        L_000e: ldloc.0 
        L_000f: isinst string
        L_0014: ldnull 
        L_0015: cgt.un 
        L_0017: ldc.i4.0 
        L_0018: ceq 
        L_001a: stloc.1 
        L_001b: ldloc.1 
        L_001c: brtrue.s L_0039
....

Wenn man den ilcode mal exakt rückübersetzen würde:


object obj=....
bool helper=((obj as string)>null)==false;
IfTrue(helper)goto endif; //brtrue
//mach was
endif:;

man beachte, das es auchnoch einen befehl brfalse gibt und die befehle brtrue und brfalse auch direkt auf verweistypen angewendet werden können (wie in c++)

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

2.891 Beiträge seit 2004
vor 13 Jahren

aber was der c#-compiler so verzapft wenn man folgendes compiliert, ist eindeutig coding styles horror auf msil ebene!

Bitte das Ganze nochmal als Release kompilieren und dann nochmal gucken.

1.130 Beiträge seit 2007
vor 13 Jahren

o.O der ganze überflüssige mist wurde wegoptimiert im release modus und jetzt steht nurnoch isinst gefolgt von brfalse dort

Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!

2.891 Beiträge seit 2004
vor 13 Jahren

Tja. An Debuginformationen kommt man halt nicht umsonst.

458 Beiträge seit 2007
vor 13 Jahren

Soeben in einem unserer Projekte gefunden:


   int intCounter = 0;

   if (this.MyList.Count > 0)
   {
       foreach (List<string> lstr in this.MyList)
       {
            intCounter++;
       }
   }

   MyOtherList.Add(intCounter.ToString());

Glaube das ganze laeuft unter Performance-Enhancement-Loop.

be the hammer, not the nail!

T
381 Beiträge seit 2009
vor 13 Jahren

Man nehme C code:


SMCR = (SMCR & 0xf0) | 1 << SE | read_uint8_t(&atm128PowerBits[powerState]);

Jage ihn durch den nesC compiler, der daraus wieder C code generiert und bekommt:


  * (volatile uint8_t *)(0x33 + 0x20) = ((
  * (volatile uint8_t *)(0x33 + 0x20) & 0xf0) | (1 << 0)) | __extension__ ({
#line 133
    uint16_t __addr16 = (uint16_t )(uint16_t )&McuSleepC__atm128PowerBits[powerState];
#line 133
    uint8_t __result;

#line 133
     __asm ("lpm""\n\t""mov %0, r0""\n\t" : "=r"(__result) : "z"(__addr16) : "r0");__result;
  }
  );

Thats magic =)

P.s.
Wer mir erklären kann was der Teil hinter extension macht. Also generell so ein compound statement nicht der exakte code aus dem Beispie, der möge mir eine pn schrieben.

Ich vermute: Führt alles aus und gibt das letzte Statement zurück. Hängt das mit dem extension keyword zusammen?

1.002 Beiträge seit 2007
vor 13 Jahren

Hallo zusammen,

gerade eben in einem .NET-Blog von einem Microsoft MVP gefunden:

public static bool HasFile(this HttpPostedFileBase file)
{
  return (file != null && file.ContentLength > 0) ? true : false;
}

Was ist falsch daran? s. [Tipp] Anfängerfehler == true / == false.

m0rius

Mein Blog: blog.mariusschulz.com
Hochwertige Malerarbeiten in Magdeburg und Umgebung: M'Decor, Ihr Maler für Magdeburg

1.044 Beiträge seit 2008
vor 13 Jahren

Hallo m0rius,

ich finde das ganz okay - da gibt es für mich keine Einwände. Warum ist das für dich ein "Coding Style Horror"? In meinen Augen ist das völlig akzeptabel, insbesondere wenn man LINQ verwendet.

zero_x