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 729 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

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

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 570 812
27 960
271 761
563
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