[C#] non-delegate type?

Pagina: 1
Acties:
  • 404 views sinds 30-01-2008
  • Reageer

Acties:
  • 0 Henk 'm!

  • Piels
  • Registratie: Maart 2001
  • Laatst online: 17-09-2024
Ben bezig met een klein tooltje voor iemand, maar krijg een compiler error waar ik geen raad mee weet.
D:\Important Stuff\Profile\Visual Studio 2005\Projects\WindowsApplication1\WindowsApplication1\frmMain.cs(94,28): error CS0428: Cannot convert method group 'getName' to non-delegate type 'string'. Did you intend to invoke the method?
Dit staat er op msdn, maar daar kan ik weinig mee...

Het gaat om de volgende dingen dus.

Ik voeg een Visitor object toe aan een array en daarna wil ik dus de naam van de Visitor (Visitor.getName) toevoegen aan een listbox.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
   public class Visitor
   {
        private string strName;
        private string strPrimIP;
        private string strSecIP;

        public Visitor(string Name, string PrimIP, string SecIP)
        {
            strName = Name;
            strPrimIP = PrimIP;
            strSecIP = SecIP;
        }

        public string getName()
        {
            return strName;
        }
   }


Dus als ik vanuit het de classe frmMain de naam wil krijgen doormiddel van getName, dan krijg ik dus bovenstaande compiler error.

Windows Phone Apps: Belstatus, Pinautomaten


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 25-06 21:03
En heb je ook een stukje source waarin je je visitor gebruikt? Probeer je niet per ongeluk getName als property aan te roepen, terwijl het een methode is?

Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
   public class Visitor
   {
        private string name;
        private IPAddress primIP;
        private IPAddress secIP;

        public Visitor(string name, IPAddress primIP, IPAddress secIP)
        {
            this.name = name;
            this.primIP = primIP;
            this.secIP = secIP;
        }

        public string Name
        {
            get
            {
                  return name;
            }
        }
   }


jezelf een klein beetje inwerken in .NET en de coding rules volgen zou wel al wat kunnen helpen.

bovendien lijkt het erop dat je een string toekent aan een event, wat natuurlijk niet kan.

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • Piels
  • Registratie: Maart 2001
  • Laatst online: 17-09-2024
Bedankt.
Ben inderdaad nog niet thuis in C# maar ik doe zoveel mogelijk om er een beetje in thuis te geraken.

C#:
1
Visitor visitor = new Visitor(txtAddName.Text, txtAddPrimIP.Text.ToString(), txtAddSecIP.Text.ToString()); 


Dit werkt nu niet voor het toevoegen van de ingevulde data aan Visitor, zie ik iets over het hoofd?

Windows Phone Apps: Belstatus, Pinautomaten


Acties:
  • 0 Henk 'm!

  • Bint
  • Registratie: Juli 2002
  • Laatst online: 07:52
C#:
1
Visitor visitor = new Visitor(txtAddName.Text, txtAddPrimIP.Text.ToString, txtAddSecIP.Text.ToString);
verander die ToString eens in ToString() ;)

en is IPAddress wel van het type string? (dat weet ik dus niet he:))

[ Voor 17% gewijzigd door Bint op 04-02-2006 20:26 ]

Memories of yesterday, will grow, but never die


Acties:
  • 0 Henk 'm!

  • Piels
  • Registratie: Maart 2001
  • Laatst online: 17-09-2024
ja, klein foutje, maar dan nog niet hoor :)

Windows Phone Apps: Belstatus, Pinautomaten


Acties:
  • 0 Henk 'm!

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

wat staat er op regel 94 van je frmMain klasse??

geef eens die hele functie (voor zover relevant)

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:01
Tja, zo geraken we er natuurlijk niet.
-Die ToString() hoef je niet eens op te roepen. De Text property van een textbox returned al een string.
- Wat is niet werken ? Je zegt dat 'het niet werkt' voor het toevoegen v/d data aan de visitor ? Wat is niet werken, wat gebeurt er niet ?
- Ik zie dat je constructor 3 parameters heeft, waarbij de laatste 2 geen strings zijn; is 'het niet werken' een compiler error die je krijgt ? Ik kan me dat nl. wel inbeelden: je probeert 3 argumenten van het type string door te geven, terwijl je een constructor hebt die één parameter neemt van het type string, en 2 parameters van het type IPAdress.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Piels
  • Registratie: Maart 2001
  • Laatst online: 17-09-2024
Ik wil dus data die ingevuld wordt in een textbox toevoegen aan een array van visitors.
Maar nu is primIP en secIP van het type IPAddress.

Ik wil het dus voor elkaar krijgen dat ik twee IP adressen in twee textboxen kan invoeren en dus kan opslaan als type IPAddress.

Heb proberen te type casten naar IPAddress, maar dat werkt ook niet.

@HIGHGuY kan atm geen code laten zien, zit op een andere pc.

Thats it.

Windows Phone Apps: Belstatus, Pinautomaten


Acties:
  • 0 Henk 'm!

  • XIU
  • Registratie: Augustus 2005
  • Laatst online: 30-10-2023

XIU

De parameters die als IPAddress staan moet je zo gebruiken:

C#:
1
Visitor visitor = new Visitor(txtAddName.Text, IPAddress.Parse(txtAddPrimIP.Text), IPAddress.Parse(txtAddSecIP.Text));


En Hungarian Notation (prefixen) zijn al lang achterhaald. Maar voor Controls is het meestal wel toegestaan om het type achteraan toe te voegen.

addNameTextBox of addNameText bijvoorbeeld

[ Voor 5% gewijzigd door XIU op 05-02-2006 16:13 ]


Acties:
  • 0 Henk 'm!

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Het kan aan mij liggen maar ik begrijp er werkelijk geen fluit van wat het probleem is, wat de TS wil etc. Wat context info, duidelijke code waar het fout gaat etc. lijkt me wel op zn plaats. Ik bedoel, als je een compile error krijgt op regel X, dan is het minimale wat je kunt geven hier de code die de compile error geeft. Heeft TS al op F1 gedrukt bij de errors in vs.net? Dan krijg je een voorbeeld van code wat die error oplevert.

Creator of: LLBLGen Pro | Camera mods for games
Photography portfolio: https://fransbouma.com


Acties:
  • 0 Henk 'm!

  • XIU
  • Registratie: Augustus 2005
  • Laatst online: 30-10-2023

XIU

Volgens wat ik kan lezen van de originele error had hij dus de methode getName gebruikt zonder () waardoor deze als een delegate type werd gebruikt, dat dan omgezet werd naar string.

Daarna was de suggestie gedaan om IPAddress te gebruiken ipv van string voor de ip-adressen waardoor een ander probleem te voorschijn kwam.

Wat houden we over:

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
   public class Visitor
   {
        private string name;
        private IPAddress primIP;
        private IPAddress secIP;

        public Visitor(string name, IPAddress primIP, IPAddress secIP)
        {
            this.name = name;
            this.primIP = primIP;
            this.secIP = secIP;
        }

        public string Name
        {
            get
            {
                  return name;
            }
        }
   }

C#:
1
2
Visitor visitor = new Visitor(txtAddName.Text, IPAddress.Parse(txtAddPrimIP.Text), IPAddress.Parse(txtAddSecIP.Text));
string visitorName = visitor.Name;

Acties:
  • 0 Henk 'm!

  • Piels
  • Registratie: Maart 2001
  • Laatst online: 17-09-2024
@EfBe heb documentatie bekeken ja.

Sorry dat het niet helemaal duidelijk was, maar ben eruit. Het is gelukt. Bedankt. :)

Windows Phone Apps: Belstatus, Pinautomaten

Pagina: 1