thevice skrev:
Ni får troligtvis ett gott skratt när ni ser koden.
ROFL! ;)
thevice skrev:
Men jag hoppas ni förstår vad jag vill åstakomma. Går det att göra så på ett enkelt sätt? Är det bra eller dåligt om man tänker på prestandan?
Det går la alldeles utmärkt, men GetData bör returnera något som du kan tilldela till DataSource.
thevice skrev:
En annan fråga, jag har aldrig fattat vad dessa rader är bra för:
private string _Något;
public int Något
{
get { return _Något; }
set { _Något = value; }
}
Den koden kapslar in variabeln (field) "_Något" i en egenskap (property) som heter "Något", och ska primärt jämföras med att bara skirva:
public int Något;
För vissa är detta något av en religion, men fördelerna med att kapsla in värdet är bl.a
- Man kan utföra värdekontroller (är värdet tillåtet) i set-metoden
- Man kan sätta olika tillgänglighet på get och set, T.ex public get och protected set
- Man kan kapsla in något helt annat än en enkel variabel, t.ex. egenskapen hos en annan variabel (return _någotannat.Något) eller returvärdet från en metod (return EnMetod())
Förvisso kan det tyckas vara overkill att använda detta när det ser ut som "Något"-exemplet ovan, och jag är inte så religiös när det gäller detta att jag tänker gnälla på de som inte gör så, men jag ser det som en stor fördel att klassen behåller sin utformning även när man gör förändingar. Kanske returnerar jag "_Något" i första utgåvan, men kommer sedan på att jag egentligen ville returnera "_någotannat.Något". Då är det bra att jag inte förändrar klassen mer än hur get-accessorn ser ut. En intern förändring, inget externt.
thevice skrev:
Det är väll mest det som skrämmer mig, jag är allergisk mot många rader kod (kanske därför jag vill använda SqlDataSource/ObjectDatasource?)
Ofta skriver man många rader kod på ett ställe, för att sedan kunna nöja sig med jättelite kod på många andra ställen.
thevice skrev:
Sedan så skulle det ta himla lång tid att skriva alla mina columner för varje tabell jag har.
Visst tar det en stund, men Visual Studio hjälper till. Skapa den lokala variablen, högerklicka på den, välj refactor->encapsulate field. Boom!
Som kuriosa kan jag nämna att get och set bakom kulisserna kompileras till två vanliga metoder. En int get_Något() och en void set_Något(int value).