Har lite problem med ett funktionsanrop Tror kanske att du har blandat ihop saker och ting här.. Ibland är jag lite knäpp som inte tänker längre än näsan räcker till märker jag. arv använder du bara om du ska utöka/utveckla en existerande systemklass Imports fungerar inte, det är då felet kommer. Men på något sätt så måste det ju gå att ärva från mer än en klass. Varför pratar du om arv hela tiden? Testa att antingen sätta funktionen sqlSats som shared, typ: > Men på något sätt så måste det ju gå att ärva från mer än en klass. Nja det är inte därför det inte går. jo, den är <b>rotbas</b> men den ärvs inte av alla klasser direkt och därför påverkar inte det ML på ngt sätt. När ska man använda arv och när ska man använda sig av variabler(eller objekt)? Jag skulle iofs hävda att cresent var en cykels märke. Dvs ett attribut på cykeln ;)Komma åt underklasser
<code>
Imports projektnamn.clsSqlSatser
</code>
använder jag för inherits är redan upptagen med en ennana class.
Nere i en sub sedan så försöker jag ropa på funktionen som ligger i clsSqlSatser
<code>
strSQL = sqlSats(strSQL)
</code>
Det han säger som fel är "referens till en icke-delad medlem kräver en object-referens". Jag har provat lite olika varianter men inte fått det att fungera, någon som ha ett möjligt förslag på lösning? Det bästa hade ju varit att kunna ha flera Inherits men man måste ju kunna hänvisa till fler än en class.Sv: Komma åt underklasser
Arv används för att justera en klass men innebörden av klassen ska ändå vara detsamma.
En specialkund är en typ av kund och kan därför använda arv.
En rektangel är en typ av form och kan därför använda arv.
etc.
Imports används för att förenkla/förkorta kod. När du skriver imports projektnamn.clsSqlSatser innebär det att du skapar en "genväg" till namnrymden projektnamn.clsSqlSatser.
Detta påverkar inte den klass du skriver i mer än att du slipper skriva projektnamn.clsSqlSatser.KlassX och istället direkt kan skriva KlassX.
Felet beror på, precis som felet säger, att du inte instansierat klassen som funktionen finns i och att den därför måste vara delad (shared) för att användas.
Mvh
Peter ISv:Komma åt underklasser
Om jag nu vill ha med denna klass hur gör jag då eftersom det inte går att använda mer än en Inherits.
I tidigare projekt har jag nämligen bara använt en, men den här gången tänkte jag strukturera upp det så jag få en class med classnamn till det jag vill ha. Till exempel sql-satser ska vara i en class osv...Sv: Komma åt underklasser
du behöver ju inte ärva för att använda systemklasserna
imports använder du bara om du är för lat för att skriva hela "sökvägen"Sv:Komma åt underklasser
Sv: Komma åt underklasser
Inte för att jag förstår så mycket av vad du försöker göra men om clsSqlSatser är en klass som har en metod som heter sqlSats så borde det väl vara så här?
Imports projektnamn
clsSqlSatser obj
strSQL = obj.sqlSats(strSQL)Sv:Komma åt underklasser
<code>
public shared function sqlSats(...parametrar...)
</code>
och anropa den sen som du gör just nu, alltså utan att instantiera ett objekt av klassen clsSqlSatser...
Eller instantiera ett objekt av klassen clsSqlSatser och anropa sen funktionen sqlSats från det här objektet, typ:
<code>
dim obj as clsSqlSatser
obj = new clsSqlSatser
obj.sqlSats(...parametrar...)
</code>
Är inte heller riktigt med på varför du är inne på arv i det här fallet utan testa nåt av det jag beskriver ovan, borde funka...Sv: Komma åt underklasser
Nej, det går inte i .NET, eftersom alla klasser ärver ifrån Object.Sv:Komma åt underklasser
Snarare så att om den <i>inte</i> ärver från från något så kommer den alltid att ärva från object. Men det hindrar inte multiple inheritance (MI)
Man har gjort ett design val att inte stödja MI eftersom de fall när man enligt best practice OOD verkligen behöver det är extremt få och inte tillräckligt viktiga för att brottas med den problematik som följer med med multipla arv. Sv:Komma åt underklasser
Sv: Komma åt underklasser
Arv ska man använda när det är frågan om är. Tex Cresent är en cykel.
för objekt eller instans variabler gäller har istället för är, Tex Cresent cykeln har en viss dimension på kedjan, Styret har en viss tjocklek osv.Sv:Komma åt underklasser