Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
[ Voor 56% gewijzigd door RobIII op 20-10-2012 14:06 ]
There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.
Je eigen tweaker.me redirect
Over mij
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| [ComVisible(true)] public class Selectiecode3Collection : Hashtable { private static Hashtable lijst = null; [ComVisible(true)] public void GetLijst() { if (lijst == null) { lijst = DatabaseFuncties.Tabellen.GetSelectiecodes3(); } } } |
Bovenstaande de code. Als ik van dit een DLL maak en deze met regasm registreer dan kan ik vanuit VB6/ASP een object creeren. Ik kan de methode GetLijst uitvoeren ... maar bijna alle properties/methods van de hashtable zijn niet bruikbaar. De Hashtable wordt gewoon gevuld met een lijst van 3 objecten.
Echter geeft de Count property van het object weer wel wat terug, namelijk de waarde 0.
Als ik de code vervang door onderstaande geeft ie nog steeds 0 terug:
1
2
3
4
5
6
7
8
9
10
11
12
| [ComVisible(true)] public class Selectiecode3Collection : Hashtable { private static Hashtable lijst = null; [ComVisible(true)] public void GetLijst() { lijst = new Hashtable(); lijst.Add("KA", "Kalender"); } } |
De keys en values en item property/method/collections zijn allemaal niet bruikbaar.
Als je het object in bijv. vb6 bekijkt heeft ie volgens de de code editor geen enkele property/method/collection. De methode "GetLijst" is dus echter wel aan te roepen. Enig idee?
[ Voor 0% gewijzigd door Woy op 22-10-2012 11:49 ]
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
Met deze code is het logisch dat je bij Count 0 terug krijgt, immers zal er in het object zelf geen enkel element gezet zijn. Je code is in ieder geval nogal onlogisch.
Als ik het zo zie snap ik uberhaupt niet waarom je een subclass van Hashtable maakt en niet gewoon meteen de hashtable terug geeft.
offtopic:
met [code=c#][/code] kun je gebruik maken van code highlighting, ik heb het nu even voor je aangepast.
[ Voor 33% gewijzigd door Woy op 22-10-2012 11:50 ]
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
1
2
3
4
5
6
7
8
9
10
11
12
| [ComVisible(true)] public class Selectiecode3Collection : Hashtable { private Hashtable lijst = null; [ComVisible(true)] public void GetLijst() { lijst = new Hashtable(); lijst.Add("KA", "Kalender"); } } |
Dan is het niet gek dat het nog steeds niet werkt. Probeer eerst eens goed te begrijpen wat je nu aan het doen bent, en waarom dat niet werkt.( Hint: Waar is de variabel lijst voor nodig? )
[ Voor 4% gewijzigd door Woy op 22-10-2012 12:15 ]
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| [ComVisible(true)] public class Selectiecode3Collection : Hashtable { public Hashtable lijst = null; [ComVisible(true)] public void GetLijst() { if (lijst == null) { lijst.Add("KA","Kalender"); } } } |
De variabele lijst gebruik ik voor het geval de lijst al gevuld is.
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
kippetje01 schreef op maandag 22 oktober 2012 @ 12:24:
Tja, hoe moeten we dit uitleggen, wat is je classe? een Hashtable, en waarom zou een Hashtable nog eens een 2e hashtable moeten bevatten?
[ Voor 14% gewijzigd door Nutcaze op 22-10-2012 12:32 ]
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
Maar wat men je duidelijk probeerde te maken is dat je klasse een HashTable overerft.
Klasse Selectiecode3Collection is dus een hashtable. Het is dan onzin om een variabele van het type hashtable te gebruiken.
Not all chemicals are bad. Without hydrogen or oxygen, for example, there would be no way to make water, a vital ingredient in beer.
Als de volgorde van je items van belang is lijkt Hashtable me niet de juiste datastructuur.Nutcaze schreef op dinsdag 23 oktober 2012 @ 14:22:
Dat weet ik en dat is al lang opgelost. Echter zijn de Collections Keys en Values niet bereikbaar vanuit ASP. Tevens heb ik geconstateerd dat de Hashtable de volgorde van de ingevoerd items wijzigt. Gedrag wat ik niet wil.
“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”
1
2
3
4
5
6
7
8
| [ComVisible(true)] public class Selectiecode3Collection : List<string, string> { public Selectiecode3Collection() { Add("KA", "Kalender"); } } |
Vervolgens kun je Selectiecode3Collection gebruiken vanuit VBScript. Is een trucje welke ik ook al eens met een VB6 app heb uitgehaald, dus zou ook moeten werken met VBScript..
If it isn't broken, fix it until it is..