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
Gelöschter Benutzer

beantworten | zitieren | melden

meine persönlichen sinnlos-code-favoriten sind solche:


int i = 0;
int j = 12345;
//.....

int a = Convert.ToInt32(i) * Convert.ToInt32(j);


ist jetzt laufzeittechnisch nciht weiter schlimm, da diese überladung des converts nur ein "return value" macht aber wenn das wirklich an jeder stelle mit jedem datentyp, der irgendwelche zahlen enthalten kann, geschieht.....

hab mal eine etwas größere berechnung entdeckt, wo nur mit integern gerechnet wurde und dennoch überall convert war. diese berechung war daraufhin derart aufgebläht, das man sie ~50 zeilen formatieren musste, damit man sie noch irgendwie lesen konnte... ohne sinnlos-converts waren es nur noch 7 zeilen

bevor jetzt jemand sagt, das man es dadurch auch nciht besser lesen kann, so sollte er sich mal einige zeilen zusammenbasteln die so aussehen:



erg = Convert.ToInt32(a) * (Convert.ToInt32(b)+Convert.ToInt32(c) *Math.Sonstwas(Convert.ToInt32(d)-Convert.ToInt32(e))*55 - Convert.ToInt32(f) *(Convert.ToInt32(a)+(Convert.ToInt32(b)-Convert.ToInt32(c))*Convert.ToInt32(d)));

schön zu lesen oder?
BerndFfm
myCSharp.de - Team

Avatar #nZo9Gyth4VPDSxGqM4sT.jpg


Dabei seit:
Beiträge: 3.806
Herkunft: Frankfurt a.M.

beantworten | zitieren | melden

Tkrasinger :
Zitat
http://www.krasinger.at/public/nc_6.jpg
http://www.krasinger.at/public/nc_7.jpg

Das ist doch genau die Lösung zu diesem Problem :

SQL-String dynamisch bauen, ohne O/R-Mapper

;-)

Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3
private Nachricht | Beiträge des Benutzers
assi
myCSharp.de - Member

Avatar #avatar-2349.jpg


Dabei seit:
Beiträge: 114
Herkunft: Uterus

beantworten | zitieren | melden

Zitat von Spontifixus
Zitat von assi
Oder übersehe ich gerade was?

Ja. Siehe:
Zitat von tkrasinger
das man da den ! Operator nehmen könnte ham die meisten noch ned überrissen ...

Gruß,
Markus

Ah, ok ^^
And in addition to the darkness there was also me.
And I moved upon the face of the darkness and I saw that I was alone.
Let There Be Light!
private Nachricht | Beiträge des Benutzers
Easyrider
myCSharp.de - Member



Dabei seit:
Beiträge: 200
Herkunft: Bayern

beantworten | zitieren | melden

Hab auch mal ein "etwas" bescheuertes Stück Quellcode gefunden:



    button29_Click(null, null);
    for (j = 0; j < 30; j++)
    {
        crc.GetScreen(screentxt,ref pos);
        if (pos == Convert.ToInt32(Liste[i].get_text))
        {
            j = 31;
        }
        else
        {
            crc.SendKey("d");
        }
    }
    if (j == 30)
    {
        s_return = "Cursor Position " + Liste[i].get_text + " not available!";
        stop = true;
    }

Steht so in einem Switch von nem Kollegen drin. Und der soll angeblich ausgelernt haben...


Schädel -> Wand
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

am meisten gefällt mir aber das: "button29_Click(null, null);"

omg... 29 buttons und alle keinen sinnigen namen. und dann noch so ein aufruf...
Easyrider
myCSharp.de - Member



Dabei seit:
Beiträge: 200
Herkunft: Bayern

beantworten | zitieren | melden

29? Diese ******* hat 52 davon! Und das sind nur die Buttons. Es gibt noch mehr Controls auf der Oberfläche X(
private Nachricht | Beiträge des Benutzers
_daniel_
myCSharp.de - Member



Dabei seit:
Beiträge: 227

beantworten | zitieren | melden

wie bekommt man 52 buttons und noch weitere controls sinnvoll auf eine oberfläche???
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo _daniel_,

mit 7x7 = 49 ist man nahe dran. Das sollte schon klappen. Minesweeper hat ja sogar schon in der Anfängereinstellung 9x9 = 81 Buttons. :-)

herbivore
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

naja, ich kenn jemanden, der hat ebenfalls versucht minesweeper nachzubauen..... mit dem designer. aber nicht etwa die 9*9 variante (klein) sondern eine 100*100 variante für extralangen spielspaß^^

als extralang hat sich dann die aufbauzeit der form herausgestellt^^
tkrasinger
myCSharp.de - Member



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

beantworten | zitieren | melden

[offtopic]
Wir hatten mal eine Variante in Access. Da waren horizontal Aussendungen und vertikal die Kontaktpersonen und an der Kreuzung war ein Button zur Markierung ob die Person eingeladen werden soll oder nicht.

Wenn also jemand eine Aussendung hinzugefügt hatte, musste man das händisch im Formular nachziehen. Vertikal hats das Access erledigt.

Irgendwann - so etwa als das Formular im Designer 10min zum aufscheinen gebraucht hat - hab ich dann gemeint, irgendwie ist des ned so cool ... und habs im Web umgesetzt. Funktionalität mal 3 + einfache Wartung. Das braucht jetzt zwar auch eine Minute zum laden, aber das bei 2500*50, was dann über 3 Mio Möglichkeiten gibt irgendwo hinzuklicken. Aber alle Aussendungen will eh kein Mensch sehen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von tkrasinger am .
private Nachricht | Beiträge des Benutzers
Juki
myCSharp.de - Member



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

beantworten | zitieren | melden

Neulich ist mir ein Buchtitel begegnet.

"Beauty is our business"

Es geht im Buch zwar um theoretische Informatik, aber man kann das Motto guten Gewissens auch auf Code übertragen.
private Nachricht | Beiträge des Benutzers
Giggeler
myCSharp.de - Member

Avatar #avatar-2673.jpg


Dabei seit:
Beiträge: 95
Herkunft: Gießen - Hessen

beantworten | zitieren | melden

japp je schöner man einen Code anleg desto besser können ander Programmier ihn lesen sehr wichtig
Naja leider halten sich nicht alles Leute daran.
Liebe Grüße
Daniel Hahn (Giggeler)
www.giggeler-it.de
private Nachricht | Beiträge des Benutzers
assi
myCSharp.de - Member

Avatar #avatar-2349.jpg


Dabei seit:
Beiträge: 114
Herkunft: Uterus

beantworten | zitieren | melden

das zu überarbeitende Projekt aufmachen, sich wundern, den nagenden Kopfschmerz beim Nachverfolgen des Code bemerken , anfangen zu schreien, in Agonie am Boden wälzen und dann das beste draus machen.
(Oben Before unten After)

Das letzte Staticding hätte ich auch noch erlegen können, aber ich war zu faul + da ist es wenigstens ne Quick and Dirty Lösung. Die anderen Staticisten wurden nur in der Klasse benutzt und wurden nirgendwo von außerhalb angesprochen, es war also völlig(!) unnötig sie zu "statischen", bzw public zu machen. *argh*

(..immer dran denken. Nur noch 30 Tage lang diesen Deppenquatsch ertragen müssen ..immer dran denken. Nur noch 30 Tage lang diesen Deppenquatsch ertragen müssen..immer dran denken. Nur noch 30 Tage lang diesen Deppenquatsch ertragen müssen..immer dran denken. Nur noch 30 Tage lang diesen Deppenquatsch ertragen müssen..immer dran denken. Nur noch 30 Tage lang diesen Deppenquatsch ertragen müssen *seufz*)
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von assi am .
Attachments
And in addition to the darkness there was also me.
And I moved upon the face of the darkness and I saw that I was alone.
Let There Be Light!
private Nachricht | Beiträge des Benutzers
assi
myCSharp.de - Member

Avatar #avatar-2349.jpg


Dabei seit:
Beiträge: 114
Herkunft: Uterus

beantworten | zitieren | melden

Und noch eine Perle:

dblCalcBid = Convert.ToDouble(tblAllQuotes.Rows[0]["calc_bid"]);
dblCalcBid = Convert.ToDouble(dblCalcBid.ToString("0.00"));
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von assi am .
And in addition to the darkness there was also me.
And I moved upon the face of the darkness and I saw that I was alone.
Let There Be Light!
private Nachricht | Beiträge des Benutzers
tkrasinger
myCSharp.de - Member



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

beantworten | zitieren | melden

wobei ich das noch verstehen kann. Da hat halt jemand einfach die Runden-Funktion nicht gefunden und halt diesen Weg genommen.
private Nachricht | Beiträge des Benutzers
Noodles
myCSharp.de - Experte



Dabei seit:
Beiträge: 4.644
Herkunft: Leipzig

beantworten | zitieren | melden

Ich habe auch etwas sehr schönes gefunden.

public const bool TRUEVALUE = true;
public const bool FALSEVALUE = false;
public static bool CheckBoolValue(bool value)
{
    return value ? TRUEVALUE : FALSEVALUE;
}
private Nachricht | Beiträge des Benutzers
assi
myCSharp.de - Member

Avatar #avatar-2349.jpg


Dabei seit:
Beiträge: 114
Herkunft: Uterus

beantworten | zitieren | melden

*rofl* Jetzt schnall ich erst was das soll .. runden ^^

Aber egal, bedenkt man daß das von einem "professionellen" Entwickler stammt, bleibt es peinlich
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von assi am .
And in addition to the darkness there was also me.
And I moved upon the face of the darkness and I saw that I was alone.
Let There Be Light!
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

naja, es ist nicht direkt runden..... eher abschneiden... da auch eine 1.009 im ergebniss eine 1.0 ergeben würde.
tkrasinger
myCSharp.de - Member



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

beantworten | zitieren | melden

Zitat von JAck30lena
naja, es ist nicht direkt runden..... eher abschneiden... da auch eine 1.009 im ergebniss eine 1.0 ergeben würde.

also wenn ich mit 1.009 ein ToString("0.00") mache, kommt "1.01" raus => Runden
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von tkrasinger am .
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

switch (Thread.CurrentThread.CurrentUICulture.Name)
{
case "de":
MessageBox.Show("<fehlertext auf deutsch>" + sqlex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
case "en":
MessageBox.Show("<fehlertext auf englisch>" + sqlex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
break;
};

na das nenn ich doch mal lokalisierung oder? :-)

das steht im übrigen überall im code... auch für die ui-controls.....
kaum eine klasse die nciht mindestens ein solches konstrukt hat....

(das ist kein fake....)
Programmierhans
myCSharp.de - Experte

Avatar #avatar-1651.gif


Dabei seit:
Beiträge: 4.221
Herkunft: Zentralschweiz

beantworten | zitieren | melden

Hier auch noch einer (allerdings in VB) XXX anonymisiert.


Dim value As String = Me.XXX.Text
If value.Length > 0 Then
   Me.XXX.Text = value
End If

PS: Das XXX-TextBox ist weder gebunden... noch mit irgendwelchen Events versehen.

Gruss
Programmierhans
Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...
private Nachricht | Beiträge des Benutzers
GMLOD
myCSharp.de - Member

Avatar #avatar-2654.jpg


Dabei seit:
Beiträge: 1.200

beantworten | zitieren | melden

Ich könnte einen ganzen Client hier posten....werde es aber nicht tun. Und ihr alle würdet beim Anblick des Codes sofort erblinden.

Ich nicht, ich bin stark. Ich hab eine rosarote Spezialbrille die mir durch den Tag hilft.

Ausschnitt:


public void ExportData1()
{
     object oExcelName;
     object oFileName;
     object[] oHeaders;
     object[] oDataTypes;
     object[] oAgg;
     object[] oData;
     object specColToReplace;

     oExcelName = "blablub";
     oFileName = "blabla";
     GetConfig(ref oHeaders, ref oDataTapyes, ref oAgg, ref specColToReplace);
     data = GetData(ref oHeaders, ref oDataTypes, reg oAgg, ref specColToReplace);
     ExcelSheet sh = new ExcelSheet(oHeaders, oDataTypes, oAgg, specColToReplace, data);
     ArrayList arlExcSheets = new ArrayList();
     arlExcSheets.Add(sh);
     Excel.Exp2ExcelMap(arlExcSheets, oFileName);
}

Kein Witz. Von dieser Sorte Methode gibt es ca 200 im ganzen Code. Und innerhalb der GetConfig Methoden etc. werden immer mehr Argumente angehäuft, die dann immer weiter per ref übergeben werden, immer tiefer in den CallStack hinein.

Try Catch Blöcke werden im Code so benutzt:


try
{
    //stuff
}
catch(Exception ex)
{
    throw ex;  //nichts weiter
}

Und den größten Horror, das "XML" Config File, hab ich euch noch erspart.
Dieser Beitrag wurde 5 mal editiert, zum letzten Mal von GMLOD am .
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!
private Nachricht | Beiträge des Benutzers
Tomot
myCSharp.de - Member

Avatar #avatar-2678.jpg


Dabei seit:
Beiträge: 691
Herkunft: Düsseldorf

beantworten | zitieren | melden

Zitat
Und den größten Horror, das "XML" Config File, hab ich euch noch erspart.

Solange es valide ist, kann doch nix schlimm dran sein? Oder etwa doch? ^^
mit freundlichen Grüßen,
Tomot

Projekte: www.gesellschaftsspieler-gesucht.de
private Nachricht | Beiträge des Benutzers
GMLOD
myCSharp.de - Member

Avatar #avatar-2654.jpg


Dabei seit:
Beiträge: 1.200

beantworten | zitieren | melden

Du hast keine Ahnung, was für Perversionen man mit "XML" erstellen kann. Das Config File ist eine Mark-Up Vergewaltigung, die ihres gleichen sucht. Werds demnächst mal posten, hab z.Z. Urlaub. Dann weisst du, was ich meine.
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!
private Nachricht | Beiträge des Benutzers
GMLOD
myCSharp.de - Member

Avatar #avatar-2654.jpg


Dabei seit:
Beiträge: 1.200

beantworten | zitieren | melden

Naja, so mal ausm Kopf raus (auszugsweise):
<add key="ExcelSheet1HeadCol1" value="SomeHeader" />
<add key="ExcelSheet1HeadCol2" value="AnotherHeader" />

<!-- snip -->

<add key="ExcelSheet1HeadCol45" value="YetAnotherHeader" />

<add key="ExcelSheet1ColorCol1" value="45" />
<add key="ExcelSheet1ColorCol2" value="45" />

<!-- snip -->

<add key="ExcelSheet1DataTypeCol1" value="V200" /> <!-- V200 ist son Marke Eigenbau String typ - wird für die Formatierung benötigt -->
<add key="ExcelSheet1DataTypeCol2" value="N" />

<!-- snip -->

<add key="ExcelSheet1ForeignKey1" value="BLABLADONTKNOWSHIT" />

Ja, und davon halt 3000 Zeilen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von GMLOD am .
Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!
private Nachricht | Beiträge des Benutzers
edsplash
myCSharp.de - Member

Avatar #avatar-3111.jpg


Dabei seit:
Beiträge: 390

beantworten | zitieren | melden

Was ich gerade gefunden habe:

War ein C-Programm für Mikrocontroller


#define ever ;;

int main(){

for(ever){
//Anweisungen
}

}

using Skill
private Nachricht | Beiträge des Benutzers
Floste
myCSharp.de - Member

Avatar #avatar-2376.jpg


Dabei seit:
Beiträge: 1.130
Herkunft: Norddeutschland

beantworten | zitieren | melden

auch ned schlecht:


void* buffer=...
...
void* indexPos=(Byte*)buffer+*((int*)(((Byte*)buffer)+8));
...
void* filePos=((Byte*)buffer)+*((int*)(((Byte*)indexPos)+16+(i*4)));
Projekte:Jade, HttpSaver
Zum Rechtschreiben gibts doch schon die Politiker. Aber die bauen auch nur mist!
private Nachricht | Beiträge des Benutzers
winSharp93
myCSharp.de - Experte

Avatar #avatar-2918.png


Dabei seit:
Beiträge: 5.742
Herkunft: Stuttgart

beantworten | zitieren | melden

Wobei die "forever" Schleife IMHO etwas Tiefgründiges hat.
Irgendwie eine nette Idee.
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 49.486
Herkunft: Berlin

beantworten | zitieren | melden

Hallo edsplash,

for(ever) ist doch gerade guter Stil, weil es kryptische Zeichen durch einen sprechenden Namen ersetzt.

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

Avatar #avatar-3111.jpg


Dabei seit:
Beiträge: 390

beantworten | zitieren | melden

vielleicht ist es weniger horror und mehr lustig ;) Ich musste auf jedenfall spontan lachen als ich es gesehen habe. Allerdings lösen defines bei mir immernoch Gänsehaut aus. Vorallem wenn ich solche Konstrukte angetroffen habe:

#define irgendeinefunktion(a,b,c,d)                    a<<24 | b<<16 | c<<8 | d

Das war z.T. sehr mühsam, wo es doch viel einfacher zu debuggen wäre, wenn man dafür eine echte Funktion schreibt.

Gruss
using Skill
private Nachricht | Beiträge des Benutzers