Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Delegate problem.

Postades av 2006-07-28 05:20:50 - Andreas Petersson, i forum c# (c-sharp), Tråden har 6 Kommentarer och lästs av 720 personer

Att använda sig utav delegates i en enda class är inga problem, det är när jag ska använda flera olika klasser jag stöter på enorma problem.
Syftet med programmet är att jag genom MainClass ska kunna välja vilket funktion som utförs i DelegateClass.

Jag använder följande kod:

using System;

class MainClass
{

        static void Main()
        {
		DelegateClass dc = new DelegateClass();
		dc.MyDelegate dcFunction = new dc.MyDelegate(dc.F);
		dc.Print(dcFunction);
        }		

}

public class DelegateClass
{

	public delegate void MyDelegate();

	public void Print(MyDelegate DFunction)
	{
		DFunction();
	}

	static void F()
	{
		Console.WriteLine("Funktion F");
	}

	static void G()
	{
		Console.WriteLine("Funktion G");
	}

}


När jag kompilerar det med csc får jag följande felmedelanden:

Hello.cs(9,3): error CS0246: The type or namespace name 'dc' could not be found
(are you missing a using directive or an assembly reference?)
Hello.cs(9,34): error CS0246: The type or namespace name 'dc' could not be found
(are you missing a using directive or an assembly reference?)
Hello.cs(9,51): error CS0122: 'DelegateClass.F()' is inaccessible due to its
protection level
Hello.cs(25,14): (Location of symbol related to previous error)
Hello.cs(10,3): error CS1502: The best overloaded method match for
'DelegateClass.Print(DelegateClass.MyDelegate)' has some invalid
arguments
Hello.cs(10,12): error CS1503: Argument '1': cannot convert from 'dc.MyDelegate'
to 'DelegateClass.MyDelegate'

Jag hoppas verkligen någon kan hjälpa mig med problemet. det är säkert något väldigt enkelt feltänk men jag är ny med C# och har väl inte riktigt kommit in i tänket än :)
Det jag är fundersam över är varför den inte hittar "dc", men men.. nått snille här hjälper mig nog ;)

Mvh Andreas


Svara

Sv: Delegate problem.

Postades av 2006-07-28 11:02:02 - David Tellander

Byt ut 'dc' till 'DelegateClass' på rad 9 och ange de statiska metoderna som public så borde det funka.


Svara

Sv:Delegate problem.

Postades av 2006-07-28 15:22:38 - Andreas Petersson

Sådär, lyckades fixa problemet.. va lite andra småfel med.
Men det verkar som om man skapar delegater som hör hemma i en annan klass som följande:

<code c#>
DelegateClass.MyDelegate dcFunction = new DelegateClass.MyDelegate(dc.F);
<code>

Hur fungerar detta? Blir MyDelegate i DelegateClass statisk automatisk?

Mvh Andreas


Svara

Sv: Delegate problem.

Postades av 2006-07-28 16:38:05 - Patrik Löwendahl

när du skapar en delegate på det sättet så skapar du egentligen en nästlad klass, inte en medlem. så din kod expanderar till:

public class DelegateClass {
     public class MyDelegate : MulticastDelegate { ... }

}


Svara

Sv:Delegate problem.

Postades av 2006-07-28 17:16:23 - Andreas Petersson

Nu hänger jag inte med riktigt.
Det jag är fundersam över är varför jag kan använda MyDelegate precis som om den vore en statisk medlem av klassen. När jag provade att göra den statisk så klagade kompilatorn, troligtvis av den anledningen du försöker förklara för mig.

Om du kunde förklara det närmare vore jag väldigt tacksam, om inte att hänvisa mig till någon sida jag kan läsa mer i ämnet för så har jag aldrig hört någon förklara det innan. Att det blir en nästlad klass..

Finns det någon möjlighet göra något liknande i DelegateClass:

<code c#>
MyDelegate aDelegate = new MyDelegate();
<code>

för att sedan komma åt den i MainClass på följande sätt efter att ha skapat ett objekt vid namn dc:

<code c#>
dc.aDelegate += new DelegateClass(dc.G);
<code>

jag inser att namnen kunde varit tydligare, men njae.. man kommer väl i det antar jag.

sedan har jag lite svårt att förstå skillnaden i att göra

MyDelegate nånting = new MyDelegate
och
public event MyDelegate MyEvent

för båda håller väl funktioner inuti sig?
kan de bara användas på egna ställen eller hur ligger det till?

jag inser att jag kanske ställer många frustrerande frågor, men jag vill verkligen lära mig det här och jag har inte hittat någon bra bok på ämnet.

Tacksam för alla svar jag kan få!

Mvh Andreas

Mvh Andreas


Svara

Sv: Delegate problem.

Postades av 2006-07-28 18:53:06 - Patrik Löwendahl

är på semester, men här kan du läsa lite till:

http://www.yoda.arachsys.com/csharp/faq/#event.delegate och här http://msdn.microsoft.com/msdnmag/issues/01/04/net/


Svara

Sv:Delegate problem.

Postades av 2006-07-29 00:11:26 - Andreas Petersson

Tack så mycket.
Verkar vara bra sidor du hittat :)

Mvh Andreas


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 170
27 953
271 705
931
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies