[C#.NET] return value functie

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

  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
Hallo,

Ik weet dat het ontzettend wazig klinkt, maar toch leg ik het even voor.
Ik ben vorige week begonnen met C#.NET en het lukt me niet om een functie een waarde terug te laten geven. Ik wilde in eerste instantie een functie die wat database handelingen afhandeld uitvoeren, maar daar kreeg ik de volgende foutmelding op:

Class, struct, or interface method must have a return type
code:
1
2
3
4
5
6
public static void fnLaadRS(string sSQL, string sConn)
{
// Mijn code staat dan hier
}

fnLaadRS("", sCRMConn);


Dus dacht ik: "Nou, laat ik 'm dan voor de lol maar een string terug geven als ie dat wil."

code:
1
2
3
4
5
6
7
public string fnLaadRS(string sSQL, string sConn)
{
// Mijn code staat dan hier
    return "test"
}

txtTest.Text    = fnLaadRS("", sCRMConn);


Maar dan krijg ik de melding Invalid token '=' in class, struct, or interface member declaration
Nu heb ik 5 jaar ervaring met het programmeren in javascript, VB(script) en eigenlijk alles wat op het web kan draaien, dus valt me dit een beetje tegen van mezelf.

Ik krijg stomweg ook geen voorbeeld gevonden van een functie die een string teruggeeft. Zowel niet in tutorial sites, als op http://msdn.microsoft.com/vcsharp of GoT search.

Weet iemand wat ik fout doe? Het kan nooit veel zijn vind ik.

| Life is a game (and games are fun) | homepage |


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
ben je niet gewoon de ';' ( punt komma ) vergeten. Een simpel voorbeeld van een class met een functie die wat returnt is dit

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class MyTestClass
{
    public MyTestClass()
    {
        //Hier constructor code
    }

    public string GetString( int parameter )
    {
        //hier wat code
        return "Dit return ik";
    }
}

MyTestClass myClass = new MyTestClass();
string retValue = myClass.GetString();


De laatste 2 regels moeten dan natuurlijk wel ergens anders in een class staan.

[ Voor 12% gewijzigd door Woy op 04-08-2004 10:09 ]

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Verwijderd

Het is waarschijnlijk de puntkomma, of anders een andere typfout.

"Invalid token" duidt op een fout tijdens het parsen, dus je syntax klopt niet.

  • whoami
  • Registratie: December 2000
  • Laatst online: 15:17
Je hebt een static method geschreven als class - method; dat houdt dan dus ook in dat, als je die method gebruikt, je de class-name van de class tot welke die method behoort moet schrijven.

code:
1
string s = TheClassName.TheStaticMethodName();

https://fgheysels.github.io/


Verwijderd

Niet als je al in die klasse zit, toch?

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Ik krijg de errors die je geeft exact gereproduceerd door je code-snippets te kopieren in een class, dus als volgt:
C#:
1
2
3
4
5
6
7
8
class Test
{
    public static void fnLaadRS(string sSQL, string sConn)
    {
    // Mijn code staat dan hier
    }
fnLaadRS("", sCRMConn);
}

Needless to say mag je geen code direct in een class plaatsen (wanneer zou het in godesnaam uitgevoerd moeten worden :? ) maar hoort die aanroep gewoon in een functie thuis.

[ Voor 5% gewijzigd door curry684 op 04-08-2004 10:41 . Reden: uh foutje ]

Professionele website nodig?


  • akakiwi
  • Registratie: September 2000
  • Laatst online: 20-03 11:13

akakiwi

I believe in the ruling class.

Topicstarter
OK, daar zit waarschijnlijk al meteen de eerste fout.
Mijn functies staan niet in een class, maar worden, net zoals in VB, rechtstreeks aangeroepen.
Ik heb dus nu alles in een class gemikt, deze class aangemaakt met
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class MyClass
{
    public string testing()
    {
        return "test";
    }
}

MyClass vanMij  = new MyClass();
txtText.Text    = vanMij.testing;

<html>
<body>
    <form runat="server">
    <asp:label 
        id="txtTest" 
        runat="server" />
    </form>
</body>
</html>


Maar die foutmelding blijft optreden.

@Rwb.
Als ik jou code rechtstreeks copy/paste, krijg ik nog een andere fout zelfs.
CS0118: 'ASP.opslaan_aspx.myClass' denotes a 'field' where a 'class' was expected

| Life is a game (and games are fun) | homepage |


Verwijderd

En deze keer is je fout dat je geen haakjes () achter de aanroep naar vanMij.testing zet.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:50

gorgi_19

Kruimeltjes zijn weer op :9

* gorgi_19 gaat ff tikken

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:50

gorgi_19

Kruimeltjes zijn weer op :9

En ik doe deze dicht; dit topic heeft op deze manier geen zin. akakiwi, je mist de complete gedachtengang van OOP en dat gaat je opbreken. Tel daarnaast op dat ASP.Net / C# / VB.Net volledig hiervan gebruik maakt en je komt in de problemen.

Hoeveel ASP.Net ook op de naam ASP (+ VBScript / JScript) lijkt; het is een compleet ander iets en je hebt nauwelijks iets aan je eerdere syntax kennis.

Programming & Webscripting is niet om jou te leren programmeren of om je aan het handje mee te gaan nemen. Beiden zijn me veel te sterk in dit topic aanwezig.

Tutorials zijn hiervoor uitgevonden en veel beter geschikt. Om je een beetje op weg te helpen: Kijk eens naar de Quickstart op www.asp.net; andere sites met artikelen zijn www.4guysfromrolla.com en www.aspalliance. Vooral in de eerdere artikelen wordt de basis besproken.

Ook een goede optie is om eens de Starter kits op www.asp.net te bekijken en te zien hoe applicaties (in ieder geval qua syntax) gebouwd zijn / worden. Vooral Ibuyspy is niet zo lastig te begrijpen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1

Dit topic is gesloten.