[VB.NET] Standaard namespaces importeren *

Pagina: 1
Acties:
  • 83 views sinds 30-01-2008

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 14-05 16:32
Ik ben sinds kort bezig met het leren van Visual Basic.NET via "het complete handboek" van "academic service". In dit boek staan verschillende opdrachten, als voorbeeld omschrijf ik het probleem wat ik ondervind met functie directory..

in het boek staat een voorbeeldcode en als ik die in het geheel overtyp krijg ik compile errors..
code:
1
Directory.GetLogicalDrives()

Wanneer ik het programma Compile (F5) dan krijg ik de volgende foutmelding

Name 'directory' is not declared

Ik heb op internet gezocht, en ben met de exacte foutmelding als search string op google één verglijkbaar probleem tegengekomen. Als oplossing/workaround kan de volgende code worden gebruikt voor het zelfde resultaat.
code:
1
System.IO.Directory.GetLogicalDrives()

Dan werkt het wel, omdat dit verder niet in het boek beschreven worden moet ik dus elke keer zoeken naar de lange versie van de functie, wat nogal wat tijd kost ;(

Aangezien het in het boek alleen de korte versie besproken wordt ga ik er vanuit dat het met een bepaalde instelling ook zou moeten kunnen, alle instellingen zijn default, en ik kan de juiste instelling niet vinden.

Mijn vraag, welke instelling heeft als gevolg dat ik ook short functions kan gebruiken (soort van afkortingen)...

[ Voor 3% gewijzigd door vriesdude op 30-12-2004 09:10 ]

/dev/null


  • maartenba
  • Registratie: November 2001
  • Laatst online: 29-07-2024
Zet eens helemaal bovenin je code:
code:
1
Import System.IO

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:15
Je moet die namespace waar de Directory class in gedefinieerd is 'importen'.

in C# doe je dat door
code:
1
using System.IO

bovenaan je code te zetten, in VB.NET doe je dat met het import statement dacht ik...

Maar dat zal zonder twijfel wel in je boek uitgelegd staan. Indien dit niet zo is -> slecht boek.

[ Voor 22% gewijzigd door whoami op 30-12-2004 09:13 ]

https://fgheysels.github.io/


  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 14-05 16:32
Ik zie net dat ik me topic titel niet afgemaakt heb,
bij deze een request voor change naar: "[VB.NET] Short Function name's" oid

Ik ga het proberen met Import System.IO, maar ik ben er al meer tegen gekomen, die neit beginnen met System.IO maar met iets anders, is er niet een globale functie of een setting in het options menu...

/dev/null


  • MrSleeves
  • Registratie: Februari 2004
  • Laatst online: 10-04 19:23

MrSleeves

You'll thank me later.

vriesdude schreef op donderdag 30 december 2004 @ 09:19:
Ik zie net dat ik me topic titel niet afgemaakt heb,
bij deze een request voor change naar: "[VB.NET] Short Function name's" oid

Ik ga het proberen met Import System.IO, maar ik ben er al meer tegen gekomen, die neit beginnen met System.IO maar met iets anders, is er niet een globale functie of een setting in het options menu...
Wat je bedoelt zijn Namespaces. Hier zijn er heel veel van en je kan ze (uiteraard ook zelf maken). :)
Met het Imports-statement kan je alle functies, subs, etc. gebruiken zonder de toevoeging van de Namespace.
Een namespace is een onderdeel van praktisch elke (zichzelf serieus nemende) programeertaal en is nodig om structuur aan te brengen. En het maakt het mogelijk om functies/classes met dezelfde naam te declareren.
Hier komt ook direct een mogelijke verwarring.

Stel namespace A bevat functie HelloWorld, maar namespace B ook en je doet:
Visual Basic .NET:
1
2
3
4
5
6
7
8
Imports A
Imports B

Public Class Test
  Public Sub Test()
     HelloWorld()
  End Sub
End Class

Dit werkt niet, omdat nu niet bekend is welke HelloWorld er wordt bedoelt.
Als je dan de volledige functienaam gebruikt:
Visual Basic .NET:
1
  A.HelloWorld

Dan werkt het wel :) .

Al met al best wel basic en moet zeker in het boek staan (onder Namespaces of Imports; en anders in de help van VS.NET)..

30Drie Web Design & IT Consultancy | Raven Consultancy Services


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:43

gorgi_19

Kruimeltjes zijn weer op :9

vriesdude schreef op donderdag 30 december 2004 @ 09:19:
Ik zie net dat ik me topic titel niet afgemaakt heb,
bij deze een request voor change naar: "[VB.NET] Short Function name's" oid

Ik ga het proberen met Import System.IO, maar ik ben er al meer tegen gekomen, die neit beginnen met System.IO maar met iets anders, is er niet een globale functie of een setting in het options menu...
.Net heeft vele duizenden classes, onderverdeeld in namespaces. Een aantal van deze classes zijn bovendien ambigu, zoals Image . Oftewel: de juiste imports bovenaan zetten :)

Meerdere namespaces standaard importeren kan alleen in een IDE zoals VS.NEt; Project --> Properties --> Imports

Verder zie ik hier weinig discussiestof in; hoe het in een IDE ingesteld wordt is afhankelijk welke je gebruikt en staat ook in de handleiding :)

[ Voor 10% gewijzigd door gorgi_19 op 30-12-2004 09:29 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 11:43

gorgi_19

Kruimeltjes zijn weer op :9

whoami wilde dit onderstaande stukje nog gaan toevoegen: :)
****************************************************************************************
vriesdude schreef op donderdag 30 december 2004 @ 09:19:

Ik ga het proberen met Import System.IO, maar ik ben er al meer tegen gekomen, die neit beginnen met System.IO maar met iets anders, is er niet een globale functie of een setting in het options menu...
Nee , dat heeft helemaal niets met je IDE ofzo te maken.
De class die je wilt gebruiken zit in de System.IO namespace. Een namespace is
, eenvoudig gezegd, een 'groepering van bij elkaar horende classes'.
Als je een class uit zo een namespace wilt gebruiken, dan moet je dat aangeven in je code (dmv het import / using statement dus).
Als je een class hebt die in de namespace 'Melp' zit, en je wilt die class gebruiken, dan moet je dus import Melp of using Melp in je code zetten.
(Kijk je boek er maar eens op na, ik kan me niet voorstellen dat dit niet behandeld wordt).

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.