Hej! <b>MEN hör det till allmänt programmerings"hyffs" att man programmerar lika många konstruktorer som antalet properties man har i klassen?</b> Jao. Alltså om man skapar ett objekt utan att skicka med några argument och man inte har angett en konstruktor av någon sort så anropas ändå en default konstruktor enligt: Per, för din information kan VB.NET ha frivilliga argument i funktioner genom Man brukar i regel ha en required constructor för klasser som måste operera mot något annat. Tillrättalägg min kritik.
Jag går en kurs i Objektorienterad programmering nu. (VB.net)
Den här tråden kan tyckas vara lite märklig. Men Jag hade tänkt ha den som ett litet klotterplank för mig själv där jag kladdar ner saker jag tycker verkar märkliga med hopp om att bättre vetandes här på forumet kan förklara hur/varför osv. Jag kommer även i somliga fall citera den föreläsare vi har när jag tycker något han säger är fel- eller tvivelaktigt - önskar i dessa fall en bekräftelse eller en tillrättaläggelse i föreläsarens poäng med det han berättat.
Skall säga att det var ett tagsen jag programmerade och då jag programmerade så var det inte objektorienterat. Detta kommer förmodligen göra att mina frågor kommer hamna ganska mycket på "nybörjarsidan" av detta.
Till en början så var jag lite kritisk till objektorienterad programmering men det har börjat släppa mer och mer nu.
----------------------------------
Dåså. Första funderingen handlar om det här med konstruktorer.
Jag har förstått att det kan vara trevligt att sätta värden i ett objekt direkt när man skapar objekt i många sammanhang.
MEN hör det till allmänt programmerings"hyffs" att man programmerar lika många konstruktorer som antalet properties man har i klassen?
Eller finns det några riktlinjer för _när_ man skall använda konstruktor och _när_ man sätter värdena senare?Sv: Tillrättalägg min kritik.
Det tycker jag inte. För mig känns det mest naturligt att en konstruktor endast tar argument för de egenskaper som måste få ett värde.
Vissa språk tillåter att man anger defaultvärden för argument. Då kan det ofta vara trevligt att låta konstruktorn ta fler argument än absolut nödvändigt, lämpligen de man ändå ofta sätter, men att man inte måste ange alla när konstruktorn används.
Jag antar att det var detta som föreläsaren helst hade velat ha, men att VB.net inte stöder defaultvärden (jag kan ha fel; är inte insatt i VB.net). Då fick han göra på detta vis.Sv:Tillrättalägg min kritik.
Public sub new()
End sub
Men skall man däremot ha någon konstruktor med argument och någon utan så måste man skriva ut båda. Det som måste skilja mellan konstruktorerna är att argumentens "utseende" måste skilja sig åt.Sv:Tillrättalägg min kritik.
<code>
Public Sub New(ByVal Test1 As String, Optional ByVal Test2 As String = "default")
End Sub
</code>
För övrigt håller jag med Per till fullo vad gäller konstruktorerna, ange bara de som kan underlätta vid skapandet av nya instanser av klassen. Dessutom, som Per nämner, begär man sådana värden som antingen krävs för att klassen ska fungera eller sådant som inte kan sättas efter att klassen skapats, alltså readonly properties utåt.Sv: Tillrättalägg min kritik.
En SteamWriter måste ha en Stream t.ex. En konstruktor per property är kanske bra om din lärare tycker det är viktigt att ni tränar på konstruktorer och att ni tvingas tänka till om varför de finns.. ;)