[C#] Programmeren in SharpDevelop

Pagina: 1
Acties:

  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
Ik ben begonnen met het schrijven van een C#-applicatie in SharpDevelop. Maar bij het compilen krijg ik al meteen 8 errors; terwijl ik alleen bij

code:
1
void buttonClick(object sender, System.EventArgs e)
de volgende code zelf heb neergezet:
code:
1
Console.WriteLine(textBox.Text.ToString);

Uiteraard is er een gelijknamige textbox via het 'Design'-tabblad geplaatst.
Als commentaar heeft SharpDevelop wel geplaatst:
code:
1
2
// THIS METHOD IS MAINTAINED BY THE FORM DESIGNER
// DO NOT EDIT IT MANUALLY! YOUR CHANGES ARE LIKELY TO BE LOST


Maar hoe kan ik dan zelf iets handmatig (dus in de code) veranderen zonder al die errors?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

En welke errors krijg je?
En heb je een ietsie uitgebreider stukje code dan 1 regel?

En wat zegt Google als je die error daar in gooit?

[ Voor 25% gewijzigd door gorgi_19 op 07-06-2003 16:43 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Patser
  • Registratie: Maart 2000
  • Laatst online: 05-08 23:11

Patser

this.Close();

ToString is een methode en moet je met () gebruiken.
Console.WriteLine(textBox.Text.ToString());

edit:

Die foutmelidng betekent dat je op een plaatst in de source aan het werken bent die iedere keer opnieuw door de GUI builder gemaakt wordt.
Bij #Develop wordt , als je wisselt tussen de "visual" en de code schermen, de code deels opnieuw aangemaakt.
Beperking van #Develop is, als je in het code scherm de GUI aanpast, dit verloren gaat als je tweug gaat naar de visual voorstelling.

[ Voor 73% gewijzigd door Patser op 07-06-2003 16:45 ]


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
De code:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
using System;
using System.Windows.Forms;

namespace MyFormProject 
{
    class MainForm : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Button button;
        private System.Windows.Forms.TextBox textBox;
        private System.Windows.Forms.Label label;
        private System.Windows.Forms.Button button;
        private System.Windows.Forms.Label label;
        {
        }
    
        // THIS METHOD IS MAINTAINED BY THE FORM DESIGNER
        // DO NOT EDIT IT MANUALLY! YOUR CHANGES ARE LIKELY TO BE LOST
        void buttonClick(object sender, System.EventArgs e)
        {
            Console.WriteLine(textBox.Text.ToString());

        }
        
        void InitializeComponent() {
            this.label = new System.Windows.Forms.Label();
            this.textBox = new System.Windows.Forms.TextBox();
            this.buvoid InitializeComponent() {
            this.label = new System.Windows.Forms.Label();
            this.textBox = new System.Windows.Forms.TextBox();
            this.button = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // label
            // 
            this.label.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
            this.label.Location = new System.Drawing.Point(8, 8);
            this.label.Name = "label";
            this.label.Size = new System.Drawing.Size(184, 23);
            this.label.TabIndex = 0;
            this.label.Text = "Geef de priemgetallen van 0 tot...";
            // 
            // textBox
            // 
            this.textBox.Location = new System.Drawing.Point(176, 0);
            this.textBox.Name = "textBox";
            this.textBox.Size = new System.Drawing.Size(48, 20);
            this.textBox.TabIndex = 1;
            this.textBox.Text = "";
            // 
            // button
            // 
            this.button.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
            this.button.Location = new System.Drawing.Point(184, 24);
            this.button.Name = "button";
            this.button.Size = new System.Drawing.Size(40, 24);
            this.button.TabIndex = 2;
            this.button.Text = "OK";
            this.button.Click += new System.EventHandler(this.buttonClick);
            // 
            // MainForm
            // 
            this.ClientSize = new System.Drawing.Size(224, 53);
            this.Controls.AddRange(new System.Windows.Forms.Control[] {
                        this.button,
                        this.textBox,
                        this.label});
            this.Text = "PrimeGenerator 0.1";
            this.ResumeLayout(false);
        }
            
        [STAThread]
        public static void Main(string[] args)
        {
            Application.Run(new MainForm());
        }
    }           
}


Foutmeldingen:

Invalid token '{' in regel 14... Daar begint het al mee 8)7

Mihoen, wat raad jij dan voor IDE aan voor C#? Visual Studio .NET zeker..

[ Voor 6% gewijzigd door hwschuur op 07-06-2003 16:54 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Maak er ff [code=c#][/code] van, dan zal ik ff de fouten bespreken met je.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Die 'invalid token' error kan er op wijzen dat er ook iets te kort staat in de regels voor regel 14.

Ik zie bv staan in je initializeComponent:
code:
1
this.buvoid InitializeComponent() {

Wat doet dat daar?

Als je nu met VS.NET of SharpDevelop devved, maakt niet uit als jij syntax-errors schrijft. ;)

https://fgheysels.github.io/


  • Patser
  • Registratie: Maart 2000
  • Laatst online: 05-08 23:11

Patser

this.Close();

Heb je Web Matrix al geprobeerd?
Leuk gratis alternatief van MS voor VS.Net
Enige dat ontbreekt is code-completion en voor een beginner met C# is dat wel fijn.

edit:

|:(
Je wil Forms maken en geen ASP.Net pagina... en daar is WebMatrix juist voor..

[ Voor 20% gewijzigd door Patser op 07-06-2003 16:53 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 07 juni 2003 @ 16:50:
Die 'invalid token' error kan er op wijzen dat er ook iets te kort staat in de regels voor regel 14.

Ik zie bv staan in je initializeComponent:
code:
1
this.buvoid InitializeComponent() {

Wat doet dat daar?

Als je nu met VS.NET of SharpDevelop devved, maakt niet uit als jij syntax-errors schrijft. ;)
Fouten vielen mee.. :P Je hebt er maar 2. De eerste is hierboven genoemd.

Kan je zelf vinden; kijk eens heel goed naar regel 14 en wat er niet aan zou kunnen kloppen. (Hint: Kijk ook naar de omliggende regel(s)

[ Voor 26% gewijzigd door gorgi_19 op 07-06-2003 16:56 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Mihoen schreef op 07 June 2003 @ 16:51:
Heb je Web Matrix al geprobeerd?
Leuk gratis alternatief van MS voor VS.Net
Enige dat ontbreekt is code-completion en voor een beginner met C# is dat wel fijn.
offtopic:
Kan je daar ook WinForm app's mee maken, of is dat enkel voor ASP.NET apps?

https://fgheysels.github.io/


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

whoami schreef op 07 June 2003 @ 16:52:
[...]


offtopic:
Kan je daar ook WinForm app's mee maken, of is dat enkel voor ASP.NET apps?
Afaik, en ook aan de titel (Free ASP.NET Web Development Tool ) te zien, alleen ASP.Net. :P Sterker nog, het heeft geloof ik niet eens code-behind, maar daar ken ik de web matrix niet goed genoeg voor. :)

[ Voor 17% gewijzigd door gorgi_19 op 07-06-2003 16:53 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Ik stel voor dat de topicstarter zelf eens z'n code kritisch bekijkt als hij compiler/syntax error's krijgt.
Het is niet de bedoeling van P&W dat de mensen hier code gaan bekijken om syntax-error's eruit te halen die je zelf ook wel kunt zien....

https://fgheysels.github.io/


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
nou ook als ik de
C#:
1
2
{
}
weghaal, blijven er errors komen... Maar ik begrijp dat er niet echt een goed gratis alternatief is voor VS.NET?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

AppleWatcher schreef op 07 June 2003 @ 16:58:
nou ook als ik de
C#:
1
2
{
}
weghaal, blijven er errors komen... Maar ik begrijp dat er niet echt een goed gratis alternatief is voor VS.NET?
En als je die weghaalt.. Welke errors krijg je dan?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
Na het weghalen van
C#:
1
this.buvoid InitializeComponent() {
krijg ik
C#:
1
The best overloaded method match for 'string.ToString()' has some invalid arguments

8)7

Ik ga maar eens een #Develop manual doorlezen. Iemand suggesties?

[ Voor 22% gewijzigd door hwschuur op 07-06-2003 17:05 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

AppleWatcher schreef op 07 June 2003 @ 17:05:
Na het weghalen van
C#:
1
this.buvoid InitializeComponent() {
Zie: [rml]whoami in "[ C#] Programmeren in SharpDevelop"[/rml]
krijg ik
C#:
1
The best overloaded method match for 'string.ToString()' has some invalid arguments

8)7

Ik ga maar eens een #Develop manual doorlezen. Iemand suggesties?
En op welke regel krijg je die error?

[ Voor 5% gewijzigd door gorgi_19 op 07-06-2003 17:08 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Waarom doe je eigenlijk:
code:
1
textBox1.Text.ToString();

Die ToString moet daar afaik helemaal niet staan, aangezien de Text property al een string returned.

https://fgheysels.github.io/


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
met deze
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
using System;
using System.Windows.Forms;

namespace MyFormProject 
{
    class MainForm : System.Windows.Forms.Form
    {
        private System.Windows.Forms.Button button;
        private System.Windows.Forms.TextBox textBox;
        public MainForm()
        {
            InitializeComponent();
        }
    
        // THIS METHOD IS MAINTAINED BY THE FORM DESIGNER
        // DO NOT EDIT IT MANUALLY! YOUR CHANGES ARE LIKELY TO BE LOST
        void buttonClick(object sender, System.EventArgs e)
        {
            Console.WriteLine(textBox.Text.ToString());

        }
        
        void InitializeComponent() {
            this.textBox = new System.Windows.Forms.TextBox();
            this.button = new System.Windows.Forms.Button();
            this.SuspendLayout();
            // 
            // textBox
            // 
            this.textBox.Location = new System.Drawing.Point(88, 64);
            this.textBox.Name = "textBox";
            this.textBox.TabIndex = 0;
            this.textBox.Text = "textBox";
            // 
            // button
            // 
            this.button.Location = new System.Drawing.Point(168, 160);
            this.button.Name = "button";
            this.button.Size = new System.Drawing.Size(72, 48);
            this.button.TabIndex = 1;
            this.button.Text = "button";
            this.button.Click += new System.EventHandler(this.buttonClick);
            // 
            // MainForm
            // 
            this.Controls.AddRange(new System.Windows.Forms.Control[] {
                        this.button,
                        this.textBox});
            this.Text = "This is my form";
            this.ResumeLayout(false);
        }
            
        [STAThread]
        public static void Main(string[] args)
        {
            Application.Run(new MainForm());
        }
    }           
}
code krijg ik geen errors... Maar de bedoeling is eigenlijk dat er een msgbox verschijnt met een tekst. Maar die krijg ik niet? Het gaat dus om deze
C#:
1
Console.WriteLine(textBox.Text.ToString());
regel code.

edit: ToString() weghalen werkt ook niet.

[ Voor 15% gewijzigd door hwschuur op 07-06-2003 17:23 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Console.WriteLine gaat helemaal geen messagebox gaan tonen.

Console.WriteLine gaat iets naar de console gaat outputten. Een messagebox tonen doe je dmv MessagBox.Show()

Misschien toch een goed idee om eerst eens een tutorial of manual erbij te nemen....

https://fgheysels.github.io/


  • Patser
  • Registratie: Maart 2000
  • Laatst online: 05-08 23:11

Patser

this.Close();

Sterker nog... (net voor de aaridgheid weer eens #Develop geinstalleerd) er zit een "Messagebox Wizard" onder "Tools"
En ik zie dat #Develop nu ook code completion heeft.
Veel makkelijker kan het niet worden.

  • Blue2k
  • Registratie: April 2002
  • Laatst online: 25-06-2023
whoami schreef op 07 June 2003 @ 17:25:
Console.WriteLine gaat helemaal geen messagebox gaan tonen.

Console.WriteLine gaat iets naar de console gaat outputten. Een messagebox tonen doe je dmv MessagBox.Show()

Misschien toch een goed idee om eerst eens een tutorial of manual erbij te nemen....
AFAIK is er geen MessageBox.Show in C#, alleen maar in VB.NET...

'Response.WriteLine("blaaat");' of 'Response.WriteLine(TextBox1.Text);'
Geeft je iig wat tekst terug gewoon boven aan de html pagina (na de postback). Popup scherpjes zul je met javascript moeten doen ;)

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Blue2k schreef op 08 June 2003 @ 00:03:
[...]


AFAIK is er geen MessageBox.Show in C#, alleen maar in VB.NET...

'Response.WriteLine("blaaat");' of 'Response.WriteLine(TextBox1.Text);'
Geeft je iig wat tekst terug gewoon boven aan de html pagina (na de postback). Popup scherpjes zul je met javascript moeten doen ;)
We hebben het hier over winforms, niet over webforms

[ Voor 6% gewijzigd door gorgi_19 op 08-06-2003 00:04 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Blue2k schreef op 08 June 2003 @ 00:03:
[...]


AFAIK is er geen MessageBox.Show in C#, alleen maar in VB.NET...
Als er in VB.NET een MessageBox.Show is, is er in C# ook een MessageBox.Show.
Test het maar uit.
'Response.WriteLine("blaaat");' of 'Response.WriteLine(TextBox1.Text);'
Geeft je iig wat tekst terug gewoon boven aan de html pagina (na de postback). Popup scherpjes zul je met javascript moeten doen ;)
WinForms en Javascript ? ;)

https://fgheysels.github.io/


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
Mooi MessageBox.Show wérkt! B)
Weet iemand misschien een goede Nederlandse tutorial over C#?

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
AppleWatcher schreef op 08 juni 2003 @ 08:27:
Weet iemand misschien een goede Nederlandse tutorial over C#?
Ja.
Check gewoon ff de P&W FAQ:
P&W FAQ - .NET

https://fgheysels.github.io/


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
Thx... Ik heb nog een andere vraag. In dit stukje code:
C#:
1
if(i/j==i/j)
is het de bedoeling dat de tweede i/j afgerond wordt naar een integer (0 decimalen dus). Kan dit 'on-the-fly' (zonder extra variable-declaratie), m.b.v. iets als int(i/j) of m.b.v. Int32.Parse(i/j)?

Dit is nodig omdat je in een dubbele for-structuur geen int's kan aanmaken.

C#:
1
2
3
for(int i=0; i < (getal2+1); i++)
for(int j=1; j < 11; j++)
int test = (i/j);


Bij regel 3 krijg ik dan de error
C#:
1
Embedded statement cannot be a declaration or labeled statement(CS1023)

[ Voor 37% gewijzigd door hwschuur op 08-06-2003 10:49 ]


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Je kan het resultaat direct casten naar een integer, maar je kunt ook gebruik maken van de Round(), Ceiling(), of Floor() methods v/d Math class.

https://fgheysels.github.io/


  • EfBe
  • Registratie: Januari 2000
  • Niet online
Mihoen schreef op 07 June 2003 @ 23:51:
Sterker nog... (net voor de aaridgheid weer eens #Develop geinstalleerd) er zit een "Messagebox Wizard" onder "Tools"
En ik zie dat #Develop nu ook code completion heeft.
Veel makkelijker kan het niet worden.
Code completion van classes die je zelf schrijft? Dus ik heb in een project class Foo met property Bar, en als ik Foo intik en cntrlspatie oid, dan komt er een lijstje met 'Bar' ?

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


  • Patser
  • Registratie: Maart 2000
  • Laatst online: 05-08 23:11

Patser

this.Close();

Net even geprobeerd:
Afbeeldingslocatie: http://jorrit.net/images/develop.png

  • EfBe
  • Registratie: Januari 2000
  • Niet online
Stoer! Dat was in de oudere versies niet aanwezig.

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


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
idd!! Ik heb nog een klein vraagje: hoe kun je met #Develop een complete .exe-file compilen?? Want bij de standaard .exe die gemaakt wordt in de Projectmap heb je een .dll-file nodig... En die staat volgens mij niet in die projectmap. Bij de standaardmanier van compilen kan ik mijn .exe-file dus niet op andere computers draaien. 8)7

edit: moet iedere computer daarvoor misschien de .NET FrameWork 1.1 Redistributional geïnstalleerd hebben?

[ Voor 15% gewijzigd door hwschuur op 09-06-2003 09:39 ]


  • EfBe
  • Registratie: Januari 2000
  • Niet online
welke dll, je eigen? #develop is zelf een C# programma, dus de csc.exe compiler heb je op je hdd, want die zit ook in de redistributional.

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


  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
AppleWatcher schreef op 08 juni 2003 @ 21:15:


edit: moet iedere computer daarvoor misschien de .NET FrameWork 1.1 Redistributional geïnstalleerd hebben?
Als je je C# programma op een andere computer wilt laten draaien moet op die computer idd de .NET runtime geinstalleerd zijn. (22mb ongeveer dacht ik).

https://fgheysels.github.io/


  • hwschuur
  • Registratie: April 2003
  • Laatst online: 07-11-2024
Wel vreemd evengoed... Wat wil Microsoft hiermee bereiken? Nou moet iedereen die software schrijft mbv .NET óf de .NET-runtime bijleveren (als dat al mag) óf iedere gebruiker die runtime laten downloaden... Kun je met Visual Studio .NET wel 'complete' .exe's compilen dan?

  • whoami
  • Registratie: December 2000
  • Laatst online: 01:57
Dat is helemaal niet vreemd. Als je de basisbeginselen van .NET verstaat, dan weet je dat de programma's managed zijn door een runtime; de CLR.
Dat is nu eenmaal een strategy waar MS voor gekozen heeft en die heel wat voordelen kan bieden: geheugen dat niet meer gebruikt wordt wordt door de garbage collector vrijgegeven, je code wordt niet naar native machine-code gecompiled, maar naar Intermediate Language. Als je je programma dan opstart, dan schiet de Just In Time compiler in actie en gaat ie de IL naar native code compileren. Zo kunnen er ook optimalisaties etc gebeuren.

Bij Java moet je ook een virtual machine bij je programma bijleveren.

https://fgheysels.github.io/


  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Het lijkt erop dat je wilt kijken of die deling (i/j) geen restwaarde oplevert; dat kun je in dat geval beter / handiger doen met de modulo-operator:

C#:
1
if (i % j == 0)



Oops, beetje een late reactie.. :X

[ Voor 11% gewijzigd door kasper_vk op 10-06-2003 13:29 ]

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'

Pagina: 1