[C#] bepaald type object aanmaken

Pagina: 1
Acties:

  • *Dutch-Force*
  • Registratie: December 2001
  • Laatst online: 07-06-2024
Hoi,

Ik zit met een klein probleempje ik wil in een functie een objecten array laten vullen met objcten waarvan de types uit een DataTable komen.
Vervolgens wil ik de waardes van deze objecten uit een andere DataTable halen.
Het probleem waar ik tegenaan loop is dat ik niet weet hoe ik precies die objecten aanmoet maken.
Voorbeeld code die ik even gemaakt heb:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private object[] getPrimaryKeyValues(DataTable xmlTable,DataTable databaseTable, string[] keyNames, int rowNumber)
        {
            object[] keyValues = new object[keyNames.Length];

            for (int key = 0; key<keyNames.Length;key++)
            {
                object keyValue = databaseTable.Columns[keyNames[key]].DataType;// zorgt ervoor dat het object overeenkomt met columnType
                keyValue = xmlTable.Rows[rowNumber][keyNames[key]];//waarde uit andere DataTable in het object stoppen
                // deze dataTable bevat alleen string. bij toewijzing veranderd keyValue altijd naar een string.
                keyValues[key] = keyValue;
            }

            return keyValues;            
        }


Het probleem is dus de waarde toewijzen. wanneer deze waarde toegevoegd wordt dan wordt het altijd een string. omdat alle waardes uit de xmlTable een string zijn

ComputerSpecs


  • whoami
  • Registratie: December 2000
  • Laatst online: 10:24
Kijk eens naar Activator.CreateInstance.

https://fgheysels.github.io/


  • Sebazztiaan
  • Registratie: Februari 2002
  • Laatst online: 21-04 16:53

Sebazztiaan

sebas!

Misschien klink dit stom, maar je kan toch casten?

ObjectWaar jeWilNaarCasten ownjwc = (ObjectWaarJeWilNaarCasten)hetOudeObject

of anders een int maken van een string; Int32.Parse(String str);

  • whoami
  • Registratie: December 2000
  • Laatst online: 10:24
Sebazztiaan schreef op zaterdag 26 februari 2005 @ 10:38:
Misschien klink dit stom, maar je kan toch casten?

ObjectWaar jeWilNaarCasten ownjwc = (ObjectWaarJeWilNaarCasten)hetOudeObject

of anders een int maken van een string; Int32.Parse(String str);
:?
Daarmee ga je niet een object dynamisch gaan aanmaken als je enkel de naam van het type weet. Althans, dat is toch wat de topicstarter wil doen imho.

https://fgheysels.github.io/


  • Korben
  • Registratie: Januari 2001
  • Laatst online: 14-11-2025

Korben

() => {};

whoami schreef op zaterdag 26 februari 2005 @ 12:01:
[...]


:?
Daarmee ga je niet een object dynamisch gaan aanmaken als je enkel de naam van het type weet. Althans, dat is toch wat de topicstarter wil doen imho.
Dan moet dat type wel volledig te instantiëren zijn met informatie in strings, wat eigenlijk bijna nooit is, tenzij het custom types zijn natuurlijk. Overigens is regel 7 in de code van de TS onzin, want daarmee wordt keyValue elke keer een object van het type System.Type.

.oisyn: Échte programmeurs haten PHP met een passie. Ben jij soms geen echte programmeur?


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 09-04 22:08
Ik vermoed dat het een design fout is. Je wilt niet zomaar types aanmaken; je verwacht toch minimaal dat die objecten een base class sharen. Dan zou je naar het Factory pattern moeten kijken.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein

Pagina: 1