Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Coding Styles Horror
Marsti
myCSharp.de - Member



Dabei seit:
Beiträge: 124

beantworten | zitieren | melden

[offtopic]Das ist aber wie Abt schon schrieb normal... die .min.js werden automatisiert erstellt und sind für die traffic-sparende (u.a. Gründe) Endbenutzerauslieferung gedacht.[/offtopic]
private Nachricht | Beiträge des Benutzers
Chris360
myCSharp.de - Member



Dabei seit:
Beiträge: 41
Herkunft: DE-NRW

beantworten | zitieren | melden

Habe da gerade beim Spielen mit den Safari Entwicklertools was im Source der Spiegel Online Seite gefunden (Javascript):

SpOnENV_MapShowCategories = ('true' == 'true');
SpOnENV_MapShowAdvert = ('false' == 'true');
Wieso hier nicht direkt ein boolscher Wert zugewiesen wird find ich sehr strange.

Quelle: http://www.spiegel.de/layout/js/http/javascript-V3-13-8.js
private Nachricht | Beiträge des Benutzers
tkrasinger
myCSharp.de - Member



Dabei seit:
Beiträge: 582
Herkunft: Enzesfeld (Niederösterreich)

beantworten | zitieren | melden

Select Case kunde.Geschlecht
    Case True 'Männer 2%
        Call someOtherMethod(with1ForMen)
    Case False 'Frauen 2%
        Call someOtherMethod(with2ForWomen)
End Select

Was der Programmierer wohl für ein Geschlecht hatte um "Männer" als das "wahre" Geschlecht zu deklarieren ... ;-)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von tkrasinger am .
private Nachricht | Beiträge des Benutzers
Diräkt
myCSharp.de - Member



Dabei seit:
Beiträge: 619
Herkunft: Schweiz

beantworten | zitieren | melden

@tkrasinger

Eigentlich müsste es doch so aussehen:

Select Case kunde.Geschlecht
    Case True 'Männer 2%
        Call someOtherMethod(with1ForMen)
    Case False 'Frauen 2%
        Call someOtherMethod(with2ForWomen)
    Case Null 'Zwitter 2%
        Call someOtherMethod(with3ForZwitter)
End Select

;)


Beste Grüsse

Diräkt

(sorry konnte ich mir nicht verkneifen ;))
private Nachricht | Beiträge des Benutzers

Moderationshinweis von herbivore (13.08.2012 - 10:32:37):

Es sei nochmal auf die besondere Regel in diesem Thread erinnert:
"Bitte lasst [...] den Horror unkommentiert."

WillBill
myCSharp.de - Member



Dabei seit:
Beiträge: 4

beantworten | zitieren | melden

Methodensignatur (soweit ok)

public static Array EvaluateExpression(string a, string b)
{...}

Methodenaufruf ( )


string outputCalcExpression = EvaluateExpression(a, b).GetValue(0).ToString();
string outputIsEvaluated =    EvaluateExpression(a, b).GetValue(2).ToString();

und ja, statt mit boolean wird mit string gearbeitet (outputIsEvaluated)...
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2349

beantworten | zitieren | melden

Gerade in einer Anwendung gefunden, den ich refaktorisieren soll:


private bool HandleErrors(ErrorObject[] errors)
{
      if(errors.Length == 0)
            return true;

      foreach(ErrorObject error in errors)
      {
           // Event werfen für jeden Fehler
           throw new ApplicationException(error.ErrorText);
      }

      this._lastError = errors[0].ErrorText;

      return false;
}

Weis nicht was ich dazu sagen soll.
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
Pippl
myCSharp.de - Member



Dabei seit:
Beiträge: 41

beantworten | zitieren | melden

Heute in der Arbeit gesehen


....
if (args.Length > 0)
{
    if (pointer)
    {
        ..... some Code ....
    }
    else 
    {
        //pointer is false
        //Not Pointer Bereich
        ..... some Code ....
    }
}
else
{
    //args.Length = 0
    //Call without Parameters
    .... some Code ....
}
....

Normal beschwere ich mich ja immer in der Arbeit, dass nicht immer alles kommentiert/dokumentiert wird. Aber solche Kommentare kann man sich auch sparen ...
private Nachricht | Beiträge des Benutzers
Scavanger
myCSharp.de - Member

Avatar #avatar-3209.jpg


Dabei seit:
Beiträge: 323

beantworten | zitieren | melden

Ich hab hier gerade eine .NET-API, die scheinbar eine 1:1 Umsetzung einer C-API ist, sprich die ganzen Features von .NET wird komplett gepfiffen.

Los gehts das die ganze API komplett auf Objektorientierung verzichtet, alle Interfaces sind als Structs definiert sind (es gibt in der gesamten API keine einzige Klasse !!!), statt Exceptions gibts wie im guten alten C Errorcodes als Returnwerte in Methoden (Der Knüller ist ja das intern Exceptions fliegen, die aber alle gefangen werden und als Errorcode zurück gegeben werden), Generika und Namespaces sind wohl Teufelswerk.

Allein der Samplecode ist schon gruslig.

Sinngemäß:


int error = 0;
Bar bar;
int  i;

error = foo(out bar, out i);

// Wie in guten alten Zeiten ....
if (error != 0)
{
     // Selbst Api.ErrorCodes ist ein struct!
     if (error == Api.ErrorCodes.Fatal)
     {
          Console.WriteLine("Panik");
          return;
     }
}
Die API ist in C++/CLI geschrieben, was meinen Verdacht das das ein "Wir brauchen unbedingt und ganz schnell eine .net API" Schnellschuss ist. Offiziell sind es aber "Performancegründe". 8o

So verwende ich lieber gleich eine native Dll, der Code der dabei herauskommt sieht fast genauso aus und da weiß ich wenigstens warum! :evil:

Wenn ich mehr Zeit hätte würde ich am liebsten die ganze API neu implementieren!
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Scavanger am .

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}
private Nachricht | Beiträge des Benutzers
Scavanger
myCSharp.de - Member

Avatar #avatar-3209.jpg


Dabei seit:
Beiträge: 323

beantworten | zitieren | melden

Ich muss noch schnell eine Perle aus dem Samplecode der o.g. API loswerden:

class MySortedDictionary :
   System.Collections.Generic.SortedDictionary<long, Object>
{
   public Object Get(long key)
   {
      try { return this[key]; }
      catch (System.Collections.Generic.KeyNotFoundException) { }
      return null;
   }

   public void Set(long key, Object val)
   {
      this[key] = val;
   }
};

8o 8o 8o

using System;class H{static string z(char[]c){string r="";for(int x=0;x<(677%666);x++)r+=c[
x];return r;}static void Main(){int[]c={798,218,229,592,232,274,813,585,229,842,275};char[]
b=new char[11];for(int p=0;p<((59%12));p++)b[p]=(char)(c[p]%121);Console.WriteLine(z(b));}}
private Nachricht | Beiträge des Benutzers
NeueWelt
myCSharp.de - Member



Dabei seit:
Beiträge: 56
Herkunft: Bayern

beantworten | zitieren | melden

weil ichs kann^^

if (x3 != 5)
                {
                    while (z3 == Convert.ToInt32(bahn3[merk].Substring(0, 1)))
                    {
                        //wenn keine 0er da sind muss man schaun ob die bahn/breite vorhanden ist, dann auslassen
                        //sonst verschiebt sich einiges, eventl auch kennzahl 999999999
                        //das mit den 0ern eventl einfügen und dann wenn gewsumlist3 && die anderen == 0 regieren, geht vll auch wenn alle 999999999
                        oExcelApplication.Cells[üh, 1] = Math.Round((((gewsumList3[laufvar] / tage3) * 5) / 1000), 1); //wochenverbrauch im monat in tonnen
                        oExcelApplication.Cells[üh, 2] = Math.Round((((gewsumList2[laufvar] / tage2) * 5) / 1000), 1);
                        oExcelApplication.Cells[üh, 3] = Math.Round((((gewsumList1[laufvar] / tage1) * 5) / 1000), 1);
                        oExcelApplication.Cells[üh, 4] = Math.Round((((gewsumList[laufvar] / (tage0 - 1)) * 5) / 1000), 1);
                        oExcelApplication.Cells[üh, 7] = bahn3[merk].Substring(1);
                        oExcelApplication.Cells[üh, 8] = Math.Round(rolgewsum[laufvar] / 1000, 1);
                        merk++; üh++; laufvar++; //bahn3[merk].Remove(0, 1);
                        if (merk == (bahn3.Count - 1))
                        {
                            break;
                        }
                    }
                }
else irgendwas

hab ich selber vor einem Jahr geschrieben und heute wieder angeguckt xD
mfg
private Nachricht | Beiträge des Benutzers
Joetempes
myCSharp.de - Member

Avatar #avatar-3309.jpg


Dabei seit:
Beiträge: 914
Herkunft: Germany

beantworten | zitieren | melden


    public enum TriStateBoolean : int
    {

        /// <summary>
        /// nicht gesetzt
        /// </summary>
        [Description ( "nicht gesetzt" )]
        NotSet = 0,

        /// <summary>
        /// falsch
        /// </summary>
        [Description ( "falsch" )]
        False = 1,

        /// <summary>
        /// wahr
        /// </summary>
        [Description ( "wahr" )]
        True = 2

    }

Auf so einem Unsinn muss ich aufsetzen...
private Nachricht | Beiträge des Benutzers
hypersurf
myCSharp.de - Member



Dabei seit:
Beiträge: 517
Herkunft: Münster

beantworten | zitieren | melden

Ich habe heute die schöne Aufgabe Fehler in einem uralten Delphi 5-Programm zu beheben X(

Feldwerte ist ein Array welches Werte aus einer Zeile einer Textdatei enthält.


  if Token(Feldwerte,59,  '¥' ) = '' then sDat1 := 'NULL' else sDat1 := Token(Feldwerte,59,  '¥' );
  if Token(Feldwerte,69,  '¥' ) = '' then sDat2 := 'NULL' else sDat2 := Token(Feldwerte,69,  '¥' );
  if Token(Feldwerte,70,  '¥' ) = '' then sDat3 := 'NULL' else sDat3 := Token(Feldwerte,70,  '¥' );
  if Token(Feldwerte,71,  '¥' ) = '' then sDat4 := 'NULL' else sDat4 := Token(Feldwerte,71,  '¥' );
  if Token(Feldwerte,73,  '¥' ) = '' then sDat5 := 'NULL' else sDat5 := Token(Feldwerte,73,  '¥' );
  if Token(Feldwerte,79,  '¥' ) = '' then sDat6 := 'NULL' else sDat6 := Token(Feldwerte,79,  '¥' );
  if Token(Feldwerte,70,  '¥' ) = '' then sDat7 := 'NULL' else sDat7 := Token(Feldwerte,70,  '¥' );
  if Token(Feldwerte,71,  '¥' ) = '' then sDat8 := 'NULL' else sDat8 := Token(Feldwerte,71,  '¥' );
  if Token(Feldwerte,84,  '¥' ) = '' then sDat9 := 'NULL' else sDat9 := Token(Feldwerte,84,  '¥' );
  if Token(Feldwerte,86,  '¥' ) = '' then sDat10 := 'NULL' else sDat10 := Token(Feldwerte,86,  '¥' );


        sSql   :=  format(ins_kunde_Client, [
                                           Token(Feldwerte,1,  '¥' ),
                                             Token(Feldwerte,2,  '¥' ),
                                             Token(Feldwerte,3,  '¥' ),
                                             Token(Feldwerte,4,  '¥' ),
                                             Token(Feldwerte,5,  '¥' ),
                                             Token(Feldwerte,6,  '¥' ),
                                             Token(Feldwerte,7,  '¥' ),
                                             Token(Feldwerte,8,  '¥' ),
                                             Token(Feldwerte,9,  '¥' ),
                                             Token(Feldwerte,10,  '¥' ),
                                             Token(Feldwerte,11,  '¥' ),
                                             Token(Feldwerte,12,  '¥' ),
                                             Token(Feldwerte,13,  '¥' ),
                                             Token(Feldwerte,14,  '¥' ),
                                             Token(Feldwerte,15,  '¥' ),
                                             Token(Feldwerte,16,  '¥' ),
                                             Token(Feldwerte,17,  '¥' ),
                                             Token(Feldwerte,18,  '¥' ),
                                             Token(Feldwerte,19,  '¥' ),
                                             Token(Feldwerte,20,  '¥' ),
                                             Token(Feldwerte,21,  '¥' ),
                                             Token(Feldwerte,22,  '¥' ),
                                             Token(Feldwerte,23,  '¥' ),
                                             Token(Feldwerte,24,  '¥' ),
                                             Token(Feldwerte,25,  '¥' ),
                                             Token(Feldwerte,26,  '¥' ),
                                             Token(Feldwerte,27,  '¥' ),
                                             Token(Feldwerte,28,  '¥' ),
                                             Token(Feldwerte,29,  '¥' ),
                                             Token(Feldwerte,30,  '¥' ),
                                             Token(Feldwerte,31,  '¥' ),
                                             Token(Feldwerte,32,  '¥' ),
                                             Token(Feldwerte,33,  '¥' ),
                                             Token(Feldwerte,34,  '¥' ),
                                             Token(Feldwerte,35,  '¥' ),
                                             Token(Feldwerte,36,  '¥' ),
                                             Token(Feldwerte,37,  '¥' ),
                                             Token(Feldwerte,38,  '¥' ),
                                             Token(Feldwerte,39,  '¥' ),
                                             Token(Feldwerte,40,  '¥' ),
                                             Token(Feldwerte,41,  '¥' ),
                                             Token(Feldwerte,42,  '¥' ),
                                             Token(Feldwerte,43,  '¥' ),
                                             Token(Feldwerte,44,  '¥' ),
                                             Token(Feldwerte,45,  '¥' ),
                                             Token(Feldwerte,46,  '¥' ),
                                             Token(Feldwerte,47,  '¥' ),
                                             Token(Feldwerte,48,  '¥' ),
                                             Token(Feldwerte,49,  '¥' ),
                                             Token(Feldwerte,50,  '¥' ),
                                             Token(Feldwerte,51,  '¥' ),
                                             Token(Feldwerte,52,  '¥' ),
                                             Token(Feldwerte,53,  '¥' ),
                                             Token(Feldwerte,54,  '¥' ),
                                             Token(Feldwerte,55,  '¥' ),
                                             Token(Feldwerte,56,  '¥' ),
                                             Token(Feldwerte,57,  '¥' ),
                                             Token(Feldwerte,58,  '¥' ),
                                             sDat1,
                                             Token(Feldwerte,60,  '¥' ),
                                             Token(Feldwerte,61,  '¥' ),
                                             Token(Feldwerte,62,  '¥' ),
                                             Token(Feldwerte,63,  '¥' ),
                                             Token(Feldwerte,64,  '¥' ),
                                             Token(Feldwerte,65,  '¥' ),
                                             Token(Feldwerte,66,  '¥' ),
                                             Token(Feldwerte,67,  '¥' ),
                                             Token(Feldwerte,68,  '¥' ),
                                             sDat3,
                                             sDat2,
                                             sDat7,
                                             sDat8,
                                             Token(Feldwerte,72,  '¥' ),
                                             sDat5,
                                             Token(Feldwerte,74,  '¥' ),
                                             Token(Feldwerte,75,  '¥' ),
                                             Token(Feldwerte,76,  '¥' ),
                                             Token(Feldwerte,77,  '¥' ),
                                             Token(Feldwerte,78,  '¥' ),
                                             sDat6,
                                             Token(Feldwerte,80,  '¥' ),
                                             Token(Feldwerte,81,  '¥' ),
                                             Token(Feldwerte,82,  '¥' ),
                                             Token(Feldwerte,83,  '¥' ),
                                             sDat9,
                                             Token(Feldwerte,85,  '¥' ),
                                             sDat10,
                                             Token(Feldwerte,87,  '¥' ),
                                             Token(Feldwerte,88,  '¥' )]);


Und wie sollte es anders sein, passen einige Werte überhaupt nicht, bzw. stehen an der falschen Stelle. Von Klassen und Objekten hatte der Programmierer wohl noch nie was gehört...
private Nachricht | Beiträge des Benutzers
jaensen
myCSharp.de - Experte

Avatar #avatar-2657.png


Dabei seit:
Beiträge: 2885
Herkunft: München

beantworten | zitieren | melden

Ein Bild sagt mehr als tausend Worte.
Und nein, es ist leider nicht die einzige Klasse die so aussieht. Zum Glück hat die Klasse nur 230 Methoden sonst würde man sich ja gar nicht mehr zurecht finden :-)
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von jaensen am .
Attachments
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2349

beantworten | zitieren | melden

Hallo,

folgendes habe ich gerade gefunden:


try
{
     try
     {
          // Code entfernt da nicht relevant
     }
     catch(Exception e)
     {
         throw;
     }
}
catch(Exception exc)
{
      this.Log(exc.Message, exc);
}

Ist ja nicht so, das man es gleich loggen könnte statt die Exception nocheinmal zu werfen.
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2349

beantworten | zitieren | melden

Jetzt musste ich gerade schmunzeln. Ich bin gerade an der Refaktorisierung einer Anwendung und habe folgendes entdeckt.


// say some nice
this.OnErrorOccured(@"Bei der Suche sind Fehler aufgetreten!");

Zumindest find ja schön, das eine nette Meldung geplant war. So sieht das also aus, wenn man alles kommentiert und auch das noch falsch macht.
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
Mallett
myCSharp.de - Member



Dabei seit:
Beiträge: 176

beantworten | zitieren | melden

Was haltet ihr eigentlich von


if(false == xyz)
{
 //...
}

?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Mallett am .
private Nachricht | Beiträge des Benutzers
WarLorD_XaN
myCSharp.de - Member



Dabei seit:
Beiträge: 105
Herkunft: Austria

beantworten | zitieren | melden

Da hat wohl jemand wenig Vertrauen in die if-Abfrage:


if (oldItems != null)
{
	if (oldItems != null)
	{
		...
	}
	...
}

Gerade im Code vom WPFToolkit gefunden.
private Nachricht | Beiträge des Benutzers
Marsti
myCSharp.de - Member



Dabei seit:
Beiträge: 124

beantworten | zitieren | melden

Oder ein Überbleibsel wo die äußere Abfrage mal eine zusätzliche Prüfung hatte ;)

Habt ihr mal alten Code von euch angeguckt? Privaten oder beruflichen. Mal davon abgesehen, dass bei Umstellung von .NET 2.0 auf .NET 4.0 (4.5 ist ja nicht wenn man Windows XP nicht ignorieren darf) schon viel Code anders/kürzer/performanter machbar wäre... echt schon erschreckend was einem da so begegnet.

Hab das gerade hinter mehr... ich mein immerhin kann ich ihn noch nachvollziehen, aber man merkt schon wie das private Projekt gewachsen ist. Ich musste mich echt stark zurückhalten, um nicht beim "Nurmalebenkurz etwas einbauen" einen Großteil des Codes umzuschreiben...
private Nachricht | Beiträge des Benutzers
Gnozo
myCSharp.de - Member



Dabei seit:
Beiträge: 149

beantworten | zitieren | melden

Puuuuuuhhh......,

Da hat aber jemand was nicht so ganz verstanden.


if (Directory.Exists(FolderPath))
{
    return true;
}
else if (!Directory.Exists(FolderPath))
{
    return false;
}
private Nachricht | Beiträge des Benutzers
Parso
myCSharp.de - Member



Dabei seit:
Beiträge: 160

beantworten | zitieren | melden

Hm ich finds i-wie uncool sich über Stilblüten lustig zu machen, wär doch sinnvoller sich mit den Entwicklern zusammen zu setzen und ein wenig Pair-Programming zu betreiben, die Qualität eurer Arbeit war anfangs sicherlich auch nicht viel besser...ausserdem:

habt ihr schon mal 9000 Loc Xaml aufgeteilt in 2 Dateien + 30k loc c# codebehind super-antipattern refactored ... das ist nicht lustig...das ist frustrierend...ich hatte mal das vergnügen den code in einer recht großen Firma mit grünem Schriftzug, eines vorruheständlerischen c++ entwicklers zu "überarbeiten"...hat mich ein paar Monate meines Lebens gekostet...

also wenn ihr das nächste mal ein paar Zeilen Code seht die euch nicht gefallen...jammert nicht rum :P :D
Wenn's zum weinen nicht reicht, lach drüber!

Moderationshinweis von herbivore (13.05.2014 - 10:32:30):

Da hast du den Sinn des Threads leider gründlich missverstanden. Daher möchte ich den Hinweis wiederholen, der ganz am Anfang des Threads steht:

"Hier geht es um den Spaß und um den Lerneffekt. Es geht nicht um das Anprangern der Autoren, schon gar nicht als Person. Bitte berücksichtigt das beim Formulieren euer Beiträge."

Das dies ernst genommen wird, zeigt sich unter anderem daran, dass es immer wieder Beiträge gibt, in denen Personen ihren eigenen (früheren) Code posten. Und denen kann man kaum unterstellen, dass sie sich selbst anprangern wollen.

private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2349

beantworten | zitieren | melden

Ich habe mal wieder einen netten Codeschnippsel in einem Projekt, das ich weiterführen soll gefunden.


// initialize view for current user (always)
if(true || User.IsLoggedIn)
{
    // ... 
}
else
{
    // ...
}
Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
holliesoft
myCSharp.de - Member



Dabei seit:
Beiträge: 18
Herkunft: Bad Kreuznach

beantworten | zitieren | melden

Eben in einem MSDN Forum gefunden:

private void button2_Click(object sender, EventArgs e)
        {
            timer1.Interval = Convert.ToInt32(1000);
        }
private Nachricht | Beiträge des Benutzers
M.L.
myCSharp.de - Member



Dabei seit:
Beiträge: 253

beantworten | zitieren | melden

Video auf Youtube: Vortrag "C# zum Gruseln" (1:05:41) :-D

ansehen


Zusatz: gerade den Tweet gesehen unter Tweed zu "Ausgabe 4.2014 des Entwickler Magazins!"
Mal schauen, ob der Beitrag zu C# ("C# Universaltalent mit Fehlerpotenzial") noch mehr "Futter" bietet...

Edit(h): tut er, auch wenn "nur" 3 Fehler abgehandelt werden
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von M.L. am .
Goalkicker.com
DNC Magazine for .NET Developers,
.NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray ;-)
private Nachricht | Beiträge des Benutzers
LatinChriz
myCSharp.de - Member

Avatar #avatar-3450.png


Dabei seit:
Beiträge: 212
Herkunft: Vienna

beantworten | zitieren | melden

hmm.... :-/

public string EncodeFilename(string oldString)
        {
            string[] arr = oldString.Split('.');
            int count = arr.Length - 1;

            string newString = HttpContext.Current.Server.HtmlDecode(oldString).ToLower().
                       Replace(arr[count], "").Replace("ä", "ae").Replace("ö", "oe").Replace("ü", "ue").Replace("ß", "ss").
                       Replace(".", "").Replace("&", "").Replace("&amp;", "").Replace("!", "").Replace("'", "").Replace("§", "").
                       Replace("²", "").Replace("³", "").Replace("/", "").Replace(";", "").Replace("*", "").Replace("#", "").
                       Replace(" ", "").Replace("+", "-").Replace("¨", "-").Replace("-", "_") + "." + arr[count].ToString();

            //Ausgabe
            return newString;
        }
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von LatinChriz am .
Kontakt & Blog: www.giesswein-apps.at
private Nachricht | Beiträge des Benutzers
D-eath
myCSharp.de - Member



Dabei seit:
Beiträge: 240
Herkunft: Ingolstadt

beantworten | zitieren | melden

Ich kann zwar keine exakten Codeschnippsel geben, aber lustig sind auch aktuell SQL-Statements über ein ganzes Projekt hingezogen, die sich weder an unsere Coding-Guidelines halten noch einen geringen Umfang haben (teilweise 60 Zeilen) und nicht mal das zurück liefern, was sie sollen. Und immer und immer wieder das selbe.

Moderationshinweis von herbivore (31.07.2014 - 08:49:55):

Um dem Ziel des Lerneffekts Rechung zu tragen, hier noch ein paar weiterführende Links:

... über ein ganzes Projekt hingezogen ...
==> Separation of concerns
... [keinen] geringen Umfang ...
==> KISS-Prinzip
... nicht mal das [richtige] zurück liefern ...
==> Unit testing
... immer wieder das selbe ...
==> Don’t repeat yourself

private Nachricht | Beiträge des Benutzers
user8744
myCSharp.de - Member



Dabei seit:
Beiträge: 1201

C# zum gruseln

beantworten | zitieren | melden

Moderationshinweis von herbivore (13.09.2014 - 08:43:16):

Der Link auf das Video wurde schon von M.L. drei Beiträge weiter oben gepostet. Wegen deiner Anmerkungen zum Video ist dein Beitrag aber nicht vollständig redundant.


Ich habe vor kurzem ein (scheinbar authorisiertes) Video von der BASTA Conference 2014 entdeckt. Der Titel ist "C# zum Gruseln"
http://www.youtube.com/watch?v=4reR1PCHSIA

Hierbei werden recht unterhaltsam einige krasse No-Go's aufgezeigt.

Anmerken möchte ich das mir für einige vorgestellte Fälle im 2. Teil des Videos durchaus plausible Szenarien einfallen die den vorgestellten Fall rechtfertigen. (Es ist relativ unfair ein paar Zeilen Code aus dem Zusammenhang zu reissen ohne das der Entwickler dazu Stellung nehmen kann)

Ausserdem beanstandet der Tutor einen hier auf mySharp.de vielgebenen Hinweis:
Er behauptet:

if(null == x)

ist Slut, vielmehr ist;

if(x==null)

dann eben doch besser.
private Nachricht | Beiträge des Benutzers
Palin
myCSharp.de - Member



Dabei seit:
Beiträge: 1115

beantworten | zitieren | melden



Die Variablen Namen hab ich abgeändert.


                int result = GetValue();
                int value = 0;
                switch (result)
                {
                    case 100:
                        value = 100;
                        break;
                    case 85:
                        value = 85;
                        break;
                    case 50:
                        value = 50;
                        break;
                    case 25:
                        value = 25;
                        break;
                    case 10:
                        value = 10;
                        break;
                    case 0:
                        value = 0;
                        break;
                }
Sollte man mal gelesen haben:

Clean Code Developer
Entwurfsmuster
Anti-Pattern
private Nachricht | Beiträge des Benutzers
dr4g0n76
myCSharp.de - Experte

Avatar #avatar-1768.jpg


Dabei seit:
Beiträge: 3047
Herkunft: Deutschland

beantworten | zitieren | melden

Auch schön:


	private void Timer1Tick(object sender, System.EventArgs e)
		{
			this._nTimerZaehler1++;
			Application.DoEvents();
		}
		private void Timer2Tick(object sender, System.EventArgs e)
		{
			this._nTimerZaehler2++;
			Application.DoEvents();
		}
		private void NamegändertTick(object sender, System.EventArgs e)
		{
			this._nNamegändertTick++;
			if (this._nNamegändertTick == 1)
			{
				if (this._oNamegändertTick != null)
				{
					this._oNamegändertTick.DisconnectAll();
					this._tRelaisTimer.Stop();
					this._tRelaisTimer.Enabled = false;
				}
			}
			Application.DoEvents();
		}
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.
private Nachricht | Beiträge des Benutzers
holliesoft
myCSharp.de - Member



Dabei seit:
Beiträge: 18
Herkunft: Bad Kreuznach

beantworten | zitieren | melden

Warum kompliziert:

 private bool isIn( char ch ) {
			switch ( ch ) {
				case 'ö':
					return true;
				case 'Ö':
					return true;
				case 'ü':
					return true;
				case 'Ü':
					return true;
				case 'ä':
					return true;
				case 'Ä':
					return true;
				case 'ß':
					return true;
				case '§':
					return true;
				case '²':
					return true;
				case '³':
					return true;
				case 'µ':
					return true;
				default:
					break;
			}
			return false;
		}

wenns auch einfach gehen würde:

private bool isForbidden( char ch )
        {
            string forbiddenChars = "öÖüÜäÄߧ²³µ"; //oder besser noch als Konstante auf Klassenebene
            return forbiddenChars.Contains(ch);
        }
private Nachricht | Beiträge des Benutzers
Rabenschwinge
myCSharp.de - Member



Dabei seit:
Beiträge: 26

beantworten | zitieren | melden

Bring ich mich doch auch mal hier ein:

           
if (nAnzahlGeräte > 1)
{
   lMehrereUnterschiedlicheGeraete = true;
}

if (!lMehrereUnterschiedlicheGeraete == false)
{
   [..]
}

Ich muss das refactoren und habe mir einen Wolf gesucht, da ich das ! überlesen hatte...
private Nachricht | Beiträge des Benutzers