[C#] Beginner probleem: Code geeft geen console output

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
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
using System;

namespace Wrox.ProCSharp.Basics
{
  class MyFirstScopeTest
  {
    static void Main()
    {
      Console.WriteLine ("Hallo");
      for (int i = 0; i < 10; i++)
      {
        Console.WriteLine(i);
      }


      for (int i = 9; i >= 0; i--)
      {
        Console.WriteLine(i);
      }
      Console.ReadLine();
      return;
    }
  }
}


De code is gekopieerd uit een boek waar ik C# mee probeer te leren. Echter, als ik dit compileer
code:
1
2
csc ScopeTest.cs
ScopeTest

Krijg ik geen compiler errors en het programma draait. Echter, geen output op het scherm. Ik heb me suf gezocht omdat een ander eenvoudig programma wel werkt op deze manier (WriteLine geeft dan output op het console). Ik zie iets over het hoofd, maar wat?!?

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • Gadgets
  • Registratie: Juni 2006
  • Laatst online: 05-05 22:13
Wat heb je ingesteld als startup project?

Heb je al gedebugged? Even doorheen steppen

Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Ik draai het niet in de Visual Studio environment maar maak het gewoon aan als tekstdocumentje en draai dan de compiler vanaf de command prompt. Ik heb nog geen ervaring met de debugger. Wellicht dat je dit een rare methode vindt maar dit is zoals mijn boek (Professional C# 2005 with .NET 3.0) het aanraad.

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • martijn00
  • Registratie: Juli 2006
  • Laatst online: 27-05 11:47
Download gewoon eens visual studio express om uit te proberen, dat werkt veel beter dan zo'n textbestandje.

Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Debugger hebt ge niet nodig.

Visual Studio -> nieuw project (console application in C#).

Even de naam aanpassen, en op f5 rammen en ge zult zien dat het gaat :)

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Los van de IDE werkt de code gewoon niet wat ik dus niet begrijp. Ter vergelijking, dit:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
using System;

namespace Wrox.ProCSharp.Basics
{
  public class ScopeTest
  {
    public static int Main ()
    {
        Console.WriteLine("Hallo");
        Console.ReadLine();
        return(0);
    }
  }
}

Geeft wel een output (soort van HelloWorld). Ik snap d'r geen jota van...

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Snake schreef op zaterdag 15 maart 2008 @ 21:52:
Debugger hebt ge niet nodig.

Visual Studio -> nieuw project (console application in C#).

Even de naam aanpassen, en op f5 rammen en ge zult zien dat het gaat :)
je hebt gelijk dan werkt het wel. Maar waarom niet vanaf de command prompt?? dan doettie helemaal niets....

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Dude, klopt u filename wel? Want u klasse heet 'MyFirstScopeTest', en en u filename ScopeTest? Die moeten afaik matchen.

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Snake schreef op zaterdag 15 maart 2008 @ 21:59:
Dude, klopt u filename wel? Want u klasse heet 'MyFirstScopeTest', en en u filename ScopeTest? Die moeten afaik matchen.
Ik heb het werkend, maar ik snap niet waarom. Snake jouw bericht heeft me iets laten proberen. Ik heb het bestand hernoemd van ScopeTest.cs naar program.cs (lekker neutraal) en nu werkt het. Maar zowel ScopeTest als program hebben NIETS te maken met de klasse 'MyFirstScopeTest'

Snapt iemand waarom het nu wel werkt?

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

daanmsvl schreef op zaterdag 15 maart 2008 @ 22:03:
[...]

Ik heb het werkend, maar ik snap niet waarom. Snake jouw bericht heeft me iets laten proberen. Ik heb het bestand hernoemd van ScopeTest.cs naar program.cs (lekker neutraal) en nu werkt het. Maar zowel ScopeTest als program hebben NIETS te maken met de klasse 'MyFirstScopeTest'

Snapt iemand waarom het nu wel werkt?
Normaal moet de filename gelijk zijn aan de klassename

File.cs -> public class File { /* ... */ }

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • DutchCommando
  • Registratie: November 2000
  • Laatst online: 09-06 08:42
Snake schreef op zaterdag 15 maart 2008 @ 22:03:
[...]

Normaal moet de filename gelijk zijn aan de klassename

File.cs -> public class File { /* ... */ }
Onzin, jij zet nooit meerdere klassen in één bestand?

Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
toch compileert hij wel:

C#:
1
2
3
public class MyFirstScopeTest
{
}

met als filename program.cs

maar... noem je hem ScopeTest.cs dan werkt het niet meer, compileert wel maar geeft geen output

8)7

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

DutchCommando schreef op zaterdag 15 maart 2008 @ 22:05:
[...]


Onzin, jij zet nooit meerdere klassen in één bestand?
Jawel, maar ik dacht dat er zowiezo 1 klasse moest zijn met dezelfde naam als de filename. Odd :|

Is dat misschien bij Java?

Going for adventure, lots of sun and a convertible! | GMT-8


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
wat ik begrijp uit mijn net verworven kennis is dat het niet uitmaakt hoe je je klassen noemt, zolang je maar een static Main hebt want dat is je entry point. Corrigeer mij als beginner gerust als ik het mis heb 8)

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • Forcepoint
  • Registratie: Januari 2007
  • Laatst online: 08-06 08:56
Ik heb niet veel verstand van compilen met de command line, maar volgens mij moet dit werken:

code:
1
CSC /main:MyFirstScopeTest ScopeTest.cs

Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Forcepoint schreef op zaterdag 15 maart 2008 @ 22:23:
Ik heb niet veel verstand van compilen met de command line, maar volgens mij moet dit werken:

code:
1
CSC /main:MyFirstScopeTest ScopeTest.cs
Geeft als output:
code:
1
2
3
4
5
6
7
8
C:\DOCUME~1\Daan\MIJNDO~1\PROGRA~1\C#\TESTPR~1>csc /main:MyFirstScopeTest ScopeTest.cs
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.1433
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.

error CS1555: Could not find 'MyFirstScopeTest' specified for Main method

C:\DOCUME~1\Daan\MIJNDO~1\PROGRA~1\C#\TESTPR~1>


terwijl die klasse toch echt bestaat.

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • Joshua
  • Registratie: Juli 2005
  • Laatst online: 20:51
Mijn JAVA leraar heeft mij geleerd dat je een static void Main() altijd zo moet beginnen in JAVA (weet dus niet of dit bij C# ook het geval is en dit uberhaubs iets met het probleem te maken heeft):
C#:
1
2
3
4
static void Main(String[] args)
{
//code
}

Acties:
  • 0 Henk 'm!

Anoniem: 21726

Het enige wat ik zo kan bedenken is dat je een winexe maakt.
Probeer eens expliciet een console-target op te geven?

code:
1
csc.exe /target:exe ScopeTest.cs

Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Anoniem: 21726 schreef op zaterdag 15 maart 2008 @ 22:42:
Het enige wat ik zo kan bedenken is dat je een winexe maakt.
Probeer eens expliciet een console-target op te geven?

code:
1
csc.exe /target:exe ScopeTest.cs
Nope geen effect

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Spike1506 schreef op zaterdag 15 maart 2008 @ 22:41:
Mijn JAVA leraar heeft mij geleerd dat je een static void Main() altijd zo moet beginnen in JAVA (weet dus niet of dit bij C# ook het geval is en dit uberhaubs iets met het probleem te maken heeft):
C#:
1
2
3
4
static void Main(String[] args)
{
//code
}
Dat is wel waar, maar dat zit ook in mijn progje. De vraag is echter, hoe komt het dat de bestandsnaam op zo'n rare manier invloed heeft op de wijze waarop het programma runt? Hij compileert wel als ik hem ScopeTest.cs noem maar geeft gewoon geen output.

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • JMfx
  • Registratie: April 2007
  • Laatst online: 01:21
Het identiek zijn van de classe naam en de file naam is volgens mij enkel van toepassing op Java. Zoals je zelf al hebt gezien is dat geen probleem voor .net. Waarschijnlijk is het geen toeval, maar in een default C# project gemaakt met Visual Studio heet de filenaam waar het entry point in staat ook Program.cs. Volgens mij moet dit vrij de kiezen zijn, maar hier heb ik nog niet veel over kunnen vinden.

[ Voor 18% gewijzigd door JMfx op 15-03-2008 23:58 ]


Acties:
  • 0 Henk 'm!

Anoniem: 155744

Probeer eens de volledige klassenaam (namespace + klassenaam) mee te geven met /main , dus
code:
1
CSC /main:Wrox.ProCSharp.Basics.MyFirstScopeTest ScopeTest.cs

[ Voor 8% gewijzigd door Anoniem: 155744 op 16-03-2008 01:02 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Spike1506 schreef op zaterdag 15 maart 2008 @ 22:41:
Mijn JAVA leraar heeft mij geleerd dat je een static void Main() altijd zo moet beginnen in JAVA (weet dus niet of dit bij C# ook het geval is en dit uberhaubs iets met het probleem te maken heeft):
C#:
1
2
3
4
static void Main(String[] args)
{
//code
}
En omdat "hij" dat zegt is dat zo? Ik opteer dan toch voor zélf leren denken en niet alles blind voor waar aan te nemen; een main method hoeft er namelijk niet altijd (exact) zo 'uit te zien'.

[ Voor 6% gewijzigd door RobIII op 16-03-2008 02:05 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Anoniem: 155744 schreef op zaterdag 15 maart 2008 @ 23:53:
Probeer eens de volledige klassenaam (namespace + klassenaam) mee te geven met /main , dus
code:
1
CSC /main:Wrox.ProCSharp.Basics.MyFirstScopeTest ScopeTest.cs
Compileert wel maar geeft wederom geeen output. Bij het draaien van de .exe wacht de pc even (lijkt ergens mee bezig te zijn) en geeft dan de cmd prompt weer terug. Er wordt niets op het scherm geschreven. Zelfde resultaat dus als zonder het /main argument

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • FTL
  • Registratie: Maart 2000
  • Laatst online: 22:28

FTL

Het is geen fout van je code, als ik de text kopieer in een nieuw bestand en dan compileer met csc krijg ik een exe file die netjes de getallen laat zien.

Klinkt dat er iets anders mis is op jouw systeem. Heb je wel genoeg rechten om bestanden te schrijven/aan te maken waar je de source file hebt staan?

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 18:29

Sebazzz

3dp

Het kan natuurlijk ook zijn dat de encoding van het bestand of de indeling niet helemaal in orde is, dan kan je ook hele rare dingen krijgen. Probeer eens het in een nieuw bestand te kopieren (de tekst knippen en plakken) en het nieuwe bestand de indeling Windows (\r\n linebreaks) en de encoding UTF-8 te geven.

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Goed om te weten dat ik niets iets fout doe. Het is zeker geen rechten probleem, hoe verklaar je anders dat als ik ScopeTest hernoem naar bv program dat het wel werkt?? Ik begin meer en meer te vermoeden dat het een of andere vage bug is in de compiler....

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Sebazzz schreef op zondag 16 maart 2008 @ 10:14:
Het kan natuurlijk ook zijn dat de encoding van het bestand of de indeling niet helemaal in orde is, dan kan je ook hele rare dingen krijgen. Probeer eens het in een nieuw bestand te kopieren (de tekst knippen en plakken) en het nieuwe bestand de indeling Windows (\r\n linebreaks) en de encoding UTF-8 te geven.
nope geen effect

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

Anoniem: 33810

Werkt het alleen als je het bestand program.cs noemt...of ook met andere willekeurig gekozen namen? Want program.cs is toevallig wel het bestand dat automatisch wordt aangemaakt wanneer je in VS200x een Console Application aanmaakt ;).

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 09-06 16:42
Tipje: public

(verbose: Je class is niet public)

;)
Dude, klopt u filename wel? Want u klasse heet 'MyFirstScopeTest', en en u filename ScopeTest? Die moeten afaik matchen.
Die moet helemaal niet matchen. Je kan nl. meerdere classes hebben in één file. (En ook één class over meerdere files)

[ Voor 119% gewijzigd door whoami op 16-03-2008 11:18 ]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

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

H!GHGuY

Try and take over the world...

static "int" main <-> static "void" main ?

ASSUME makes an ASS out of U and ME


Acties:
  • 0 Henk 'm!

Anoniem: 33810

H!GHGuY schreef op zondag 16 maart 2008 @ 11:35:
static "int" main <-> static "void" main ?
Maakt opzich niks uit, zolang het return type maar overeenkomt ;).

"int main( ... )" is meestal C++, en "void main ( ... )" is standaard in C# :).

Acties:
  • 0 Henk 'm!

  • FTL
  • Registratie: Maart 2000
  • Laatst online: 22:28

FTL

Zoals ik hier boven al heb aangegeven: als je met de hand de code in een cs file stopt en compileerd gaat het hier 100% goed.

Hoe start jij de exe file op? sta je met de "command prompt" in de folder waar de cs file staat en roep je dan
code:
1
"c:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.exe" test.cs

aan?

start je dan de exe met dezelfde command prompt?

Acties:
  • 0 Henk 'm!

  • JMfx
  • Registratie: April 2007
  • Laatst online: 01:21
Heb je al geprobeerd dit op een andere computer uit te voeren?

btw. Waar kan je instellen dat je niet het full path moet intypen voor csc.exe?

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 09-06 16:42
Hoe ziet je file er uit nadat je gecompiled hebt ?
Heb je het ook al eens vanuit je IDE gerunned ?
Je bent zeker dat je je file gesaved hebt voordat je compiled ? etc...

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Hoop reply's.
Ik compileer vanaf de Visual Studio 2005 command prompt waardoor de VS directory in het path zit (good old DOS days...). Ik compileer idd met csc ScopeTest.cs. Daarna type ik op de prompt simpelweg ScopeTest in.

Ik heb idd ook geprobeert om van de main een void te maken. geen effect, om logische redenen want dat zou ook niet uit mogen maken. whoami gaf aan dat de klasse niet public is, ik heb beide geprobeerd (zowel public definiëren als niet) --> geen effect

Ik heb de .exe nog niet gerund vanaf een andere computer.

Ik heb ScopeTest.cs hernoemd naar daan.cs --> werkt wel. Dus het is niet alleen bij program.cs

Tot zover alle antwoorden. Ik vermoed zelf een rare bug die wij hier niet gaan doorgronden.

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
whoami schreef op zondag 16 maart 2008 @ 13:18:
Hoe ziet je file er uit nadat je gecompiled hebt ?
Heb je het ook al eens vanuit je IDE gerunned ?
Je bent zeker dat je je file gesaved hebt voordat je compiled ? etc...
De gecompileerde ScopeTest heet ScopeTest.exe, 3072 bytes
Vanuit de IDE werkt het wel maar dan heet het ook program.cs
En JA Ik heb gesaved :)

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 20:48

Haan

dotnetter

Ik zou ook niet zoveel moeite en aandacht besteden aan het proberen te schrijven van zo'n triviaal programmaatje in een text editor. Je kan beter gewoon VS gebruiken en vandaaruit compileren en runnen. Dan kan je ook meteen leren omgaan met IntelliSense en VS zelf e.d. :) Imo een stuk nuttiger om later wat ingewikkelder programma's te kunnen schrijven.

[ Voor 13% gewijzigd door Haan op 16-03-2008 13:37 ]

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • Zyphrax
  • Registratie: September 2001
  • Laatst online: 04-04-2023
whoami schreef op zondag 16 maart 2008 @ 11:15:
Tipje: public

(verbose: Je class is niet public)

;)


[...]

Die moet helemaal niet matchen. Je kan nl. meerdere classes hebben in één file. (En ook één class over meerdere files)
Ik sluit me hier helemaal bij aan.
Je class en main method zijn niet public.

Any sufficiently advanced technology is equivalent to magic.


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Zoals gezegd: Heeft geen effect om beide public te maken. En hoe verklaar je dan dat exact dezelfde code met een andere bestandsnaam wél werkt?!?

@Haan: Uiteraard heb je gelijk dat dit erg veel tijd is voor een triviaal programma maar nu zit het me dwars dat ik niet snap waarom het werkt 8)7

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • JMfx
  • Registratie: April 2007
  • Laatst online: 01:21
Wat als je de gecompileerde exe (ScopeTest.exe) opzoekt met windows explorer en dan runt, doet het programma het dan?

Acties:
  • 0 Henk 'm!

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 08-06 23:13
Ik heb over application startup dit gevonden: http://en.csharp-online.n..._10.1_Application_startup

- scope heeft geen invloed op het al dan niet in aanmerking komen van het application entry point
- het aangeven van het application entrypoint valt buiten de scope van de definitie

Ik vermoed dat op een of andere manier de compiler/runtime deze main niet als entrypoint ziet. Waarom kan ik even niet zo snel verklaren.
Haan schreef op zondag 16 maart 2008 @ 13:32:
Ik zou ook niet zoveel moeite en aandacht besteden aan het proberen te schrijven van zo'n triviaal programmaatje in een text editor. Je kan beter gewoon VS gebruiken en vandaaruit compileren en runnen. Dan kan je ook meteen leren omgaan met IntelliSense en VS zelf e.d. :) Imo een stuk nuttiger om later wat ingewikkelder programma's te kunnen schrijven.
De TS begint bij de basics, zonder de noise van een IDE en loopt tegen een verschijnsel aan wat hij niet kan verklaren. Dat hij het naadje van de kous wil weten zegt veel over zijn insteek, dat jij hem adviseert om dan maar een IDE te pakken zegt veel over jouw manier van werken.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 09-06 16:42
Het enige wat ik kan bedenken is dat de topicstarter op een of andere manier de verkeerde file gecompiled heeft ofzo....
Toen ik eens eea aan het uitproberen was mbt dit topic, heb ik het nl. ook tegengekomen: Ik had mbhv VS.NET een nieuwe console app gemaakt, en de naam die VS.NET voorstelde, heb ik behouden, evenals de filename.
De solution werd opgeslagen in D:\tmp.

Dan heb ik een VS.NET command prompt geopend, en heb ik een file gecompileerd die in c:\tmp stond.... Toevallig stond daar ook een ConsoleApplication1 en een Program.cs, maar deze Program.cs zag er gewoon zo uit:
code:
1
2
3
4
5
...
static void Main()
{ 
   // Niets
}...

...

Verder zie ik geen logische verklaring voor het probleem dat TS gehad heeft.

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 20:48

Haan

dotnetter

farlane schreef op maandag 17 maart 2008 @ 10:23:

De TS begint bij de basics, zonder de noise van een IDE en loopt tegen een verschijnsel aan wat hij niet kan verklaren. Dat hij het naadje van de kous wil weten zegt veel over zijn insteek, dat jij hem adviseert om dan maar een IDE te pakken zegt veel over jouw manier van werken.
Ik bedoelde alleen dat je, als je daadwerkelijk een programma gaat schrijven, je dat toch met behulp van een IDE doet, zeker in het geval van C#, of je moet het leuk vinden om echt alle triviale dingen zelf te doen. Daarom kan je beter meteen leren omgaan daarmee omdat het ook tijd kost voordat je alle features en dergelijke hebt ontdekt.
Dat is een tip voor de TS, want zijn boek zal waarschijnlijk alle code in textbestandjes laten schrijven, en dat is best aardig om een paar keer te doen om een beetje feeling te krijgen met de materie, maar verder niet erg nuttig, omdat je verder toch wel gebruik zal maken van een IDE.

Afgezien van dat is het natuurlijk leuk om uiteindelijk uit te vinden wat er nou aan de hand was :)

Kater? Eerst water, de rest komt later


Acties:
  • 0 Henk 'm!

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 09-06 15:21
misschien dat je op de prompt de verkeerde versie opstart, of dat die gebruik maakt van verkeerde andere betanden. dan zou dat een oudere versie kunnen zijn.

en misschien rename je wel de juiste nieuwe file in de explorer, en is er dan maar 1 file met de nieuwe naam, die het wel doet ( terwijl er daarvoor de oude file was, en de nieuwe file, waarvan de verkeerde wordt gestart?

iets met je zoekpad of zo ?

[ Voor 18% gewijzigd door engelbertus op 17-03-2008 11:16 ]


Acties:
  • 0 Henk 'm!

  • Zyphrax
  • Registratie: September 2001
  • Laatst online: 04-04-2023
Ik kan ook van harte aanraden om de IDE te gebruiken. Waarom een probleem maken van iets wat geen probleem hoeft te zijn. Gratis heb je al de Express editions.

Any sufficiently advanced technology is equivalent to magic.


Acties:
  • 0 Henk 'm!

  • pkuppens
  • Registratie: Juni 2007
  • Laatst online: 07-06 13:12
Ik zou nog even doorstoeien met die file names, beginnen met hoofdletter heeft misschien voor csc een betekenis?
Voor de zekerheid zou ik ook checken met 'Hallo1' , 'Hallo2', dat als je uitvoer ziet, die ook echt van jou programma, en niet van een verstopte schaduw komt.

Acties:
  • 0 Henk 'm!

  • Spiral
  • Registratie: December 2005
  • Niet online
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System; 

  class myclass
  { 
    static void Main() 
    { 
      Console.WriteLine ("Hallo"); 
      for (int i = 0; i < 10; i++) 
      { 
        Console.WriteLine(i); 
      } 


      for (int i = 9; i >= 0; i--) 
      { 
        Console.WriteLine(i); 
      } 
      Console.ReadLine(); 
      return; 
    } 
  }


code:
1
c:\Program Files\Microsoft Visual Studio 8\VC>csc /out:mijnexe.exe c:\jouwklasse.cs


De executable komt terecht in het pad waar je CSC aanroept. De namen die je geeft aan je exe maakt helemaal niks uit. CSC maakt de executable standaard lowercase.
Ik gebruik VS2005

[ Voor 5% gewijzigd door Spiral op 17-03-2008 15:50 . Reden: Toevoeging versie ]

To say of what is that it is not, or of what is not that it is, is false, while to say of what is that it is, and of what is not that it is not, is true. | Aristoteles


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
whoami schreef op maandag 17 maart 2008 @ 10:34:
Het enige wat ik kan bedenken is dat de topicstarter op een of andere manier de verkeerde file gecompiled heeft ofzo....
Whoami jouw opmerking lijkt idd logisch te zijn maar ik kan je verzekeren, ik compileer het juiste! Ik heb het minimaal al 20x geprobeerd. Het rare is dus dat als ik de file kopiëer naar een andere naam:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
C:\...>copy ScopeTest.cs elkeanderenaam.cs
()
C:\...>csc elkeanderenaam.cs
(MS output hier)
C:\...>elkeanderenaam.exe
1
2
3
4
5
6
7
8
9
etc

dan werkt het, zoals je ziet, wel!

[ Voor 2% gewijzigd door daanmsvl op 17-03-2008 16:56 . Reden: Zin vergeten ]

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Haan schreef op maandag 17 maart 2008 @ 11:00:
[...]


Dat is een tip voor de TS, want zijn boek zal waarschijnlijk alle code in textbestandjes laten schrijven, en dat is best aardig om een paar keer te doen om een beetje feeling te krijgen met de materie, maar verder niet erg nuttig, omdat je verder toch wel gebruik zal maken van een IDE.
Boek gaat met de IDE aan de slag in hoofdstuk 5 ofzo maar gaat uit van een programmeerachtergrond. Dus ze gaan niet uitleggen wat een klasse is, een for (int i=0; i < 10; i++) loop is enzo. MAar om bepaalde zaken te laten zien werken ze met de compiler vanaf de command prompt omdat het de clutter van je IDE voorkomt. Eigenlijk ben ik best wel gecharmeerd van de aanpak; je leert je source beter hierdoor te begrijpen.

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Om even te laten zien hoe raar het er voor mij uitziet heb ik even een capture gemaakt:

http://www.onr.nu/capture.avi

21.2MB groot.

Wat ik hier niet heb gedaan is het "oude" .exe bestand weggooien voordat ik de nieuwe eroverheen compileer. Is ook niet nodig maar mocht iemand zich dat afvragen, het maakt niets uit. Weggooien of niet, resultaat is, zoals je in het filmpje zal zien, curieus.

[ Voor 0% gewijzigd door daanmsvl op 17-03-2008 17:03 . Reden: Bestandsgrootte klopte niet, aangepast ]

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • JMfx
  • Registratie: April 2007
  • Laatst online: 01:21
Misschien ligt het aan de Visual Studio 2005 command prompt, heb je het al eens geprobeerd met cmd.exe?

Acties:
  • 0 Henk 'm!

  • Coca-Cola
  • Registratie: Maart 2001
  • Laatst online: 17:10
Hmm, raar probleem. Wat gebeurt er als je de file compileerd en de exe dan hernoemt. Lukt het dan wel? (je geeft aan dat de cs file voor compilatie veranderen wel zorgt voor het werken, dus misschien ligt het wel alleen aan de naam van de exe?) Misschien dat er ergens anders in je Path een exe staat met dezelfde naam en dat die gerunt wordt ipv van de exe die jij denkt? (of probeer de exe te runnen met gebruik van het hele pad + exe naam)

[ Voor 8% gewijzigd door Coca-Cola op 17-03-2008 18:18 ]


Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Laatst online: 18:29

Sebazzz

3dp

JMfx schreef op maandag 17 maart 2008 @ 17:31:
Misschien ligt het aan de Visual Studio 2005 command prompt, heb je het al eens geprobeerd met cmd.exe?
Vriend, de snelkoppeling roept een bat bestand aan dat wat env. vars. instelt en daarna cmd.exe aanroept 8)7

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Coca-Cola schreef op maandag 17 maart 2008 @ 18:17:
Hmm, raar probleem. Wat gebeurt er als je de file compileerd en de exe dan hernoemt. Lukt het dan wel? (je geeft aan dat de cs file voor compilatie veranderen wel zorgt voor het werken, dus misschien ligt het wel alleen aan de naam van de exe?) Misschien dat er ergens anders in je Path een exe staat met dezelfde naam en dat die gerunt wordt ipv van de exe die jij denkt? (of probeer de exe te runnen met gebruik van het hele pad + exe naam)
Raar verhaal... Ik heb ScopeTest.exe hernoemd naar een andere naam en wat denk je?!?! HET WERKT! !!! :X

Ik heb path eens opnieuw ingesteld zodat er niets meer instaat (Path=C:\TEMP -- die map is leeg). maar dat had geen effect op ScopeTest.exe. Ik snap d'r helemaal niets meer van!?!?!?

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • Coca-Cola
  • Registratie: Maart 2001
  • Laatst online: 17:10
Ik bedoelde eigenlijk het Path van je system (onder control panel --> System --> Advanced enviromental variables). Volgens mij wordt in al die dirs gekeken als er een bestand wordt gebruikt zonder pad erbij (dus als jij in 1 van die dirs een ScopeTest.exe hebt staan dan kan die die misschien pakken ipv de diegene die jij bedoeld.). Ik ben heel benieuwd of het ook werkt (naast hernoemen) als je het hele pad + exe naam gebruikt in de aanroep vanaf de cmd (of het bestand slepen naar de start-->Run van windows, dan krijg je automagisch het hele pad)

Acties:
  • 0 Henk 'm!

  • engelbertus
  • Registratie: April 2005
  • Laatst online: 09-06 15:21
ik ben ook erg benieuwd, maar ik zie geen reacties meer. kick?

Acties:
  • 0 Henk 'm!

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
vind het overigens ook raar dat er een return statement in een void methode staat...

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 09-06 16:42
4of9 schreef op vrijdag 21 maart 2008 @ 11:27:
vind het overigens ook raar dat er een return statement in een void methode staat...
daar is niks raars aan. Je geeft gewoon aan dat de method niet verder moet uitgevoerd worden.
(void returned ook iets, nl. 'niets').

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
Coca-Cola schreef op woensdag 19 maart 2008 @ 18:03:
Ik bedoelde eigenlijk het Path van je system (onder control panel --> System --> Advanced enviromental variables). Volgens mij wordt in al die dirs gekeken als er een bestand wordt gebruikt zonder pad erbij (dus als jij in 1 van die dirs een ScopeTest.exe hebt staan dan kan die die misschien pakken ipv de diegene die jij bedoeld.). Ik ben heel benieuwd of het ook werkt (naast hernoemen) als je het hele pad + exe naam gebruikt in de aanroep vanaf de cmd (of het bestand slepen naar de start-->Run van windows, dan krijg je automagisch het hele pad)
Sorry was even een paar dagen weg. De environment variables heben geen invloed, dat heb ik niet alleen getest maar zou ook niet mogen. Hij zou nooit een commando van de environment mogen afhalen als er een locale .exe aanwezig is.

Het meest curieze is overigens nog wel dat sinds vandaag de originele ScopeTest.exe gewoon werkt, as advertised. Het rare probleem is dus even mysterieus verdwenen als dat het gekomen is....En ik hetb niets verandert aan mijn systeem.

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 13-12-2024
Normaliter wordt in dit soort voorbeelden Console.Read() gebruikt om je output te laten staan. Maar door die return statement wordt er volgens mij idd afgesloten. (misschien was mijn formulering wat krom)

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 03-06 15:40
Snake schreef op zaterdag 15 maart 2008 @ 22:03:
[...]

Normaal moet de filename gelijk zijn aan de klassename

File.cs -> public class File { /* ... */ }
Dat is in Java zo, in C# kun je de file names geven wat je wilt en zelfs in 1 file meerdere classes schrijven of 1 class over meerdere files verspreiden (partial class)

Verder, welk boek heb je, wat een ontzettend raar boek om C# / .net3 zonder ide te beginnen.. imho is console altijd ingewikkelder. Alleen bij java zie ik soms de voordelen (maar dat komt omdat die ide's net wat minder zijn imo)

[ Voor 22% gewijzigd door roy-t op 21-03-2008 12:24 ]

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • TaraWij
  • Registratie: December 2007
  • Laatst online: 08-02 18:37
Gebruik je toevallig Windows Vista? Mischien werkt de SuperFetch niet naar behoren waardoor een oude versie in het geheugen bleef.

Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
roy-t schreef op vrijdag 21 maart 2008 @ 12:19:
[...]


Dat is in Java zo, in C# kun je de file names geven wat je wilt en zelfs in 1 file meerdere classes schrijven of 1 class over meerdere files verspreiden (partial class)

Verder, welk boek heb je, wat een ontzettend raar boek om C# / .net3 zonder ide te beginnen.. imho is console altijd ingewikkelder. Alleen bij java zie ik soms de voordelen (maar dat komt omdat die ide's net wat minder zijn imo)
Professional C# 2005 with .net 3.0 van Wrox. Ik heb persoonlijk al genoeg gezegd over IDE vs command prompt dus zie daarvoor eerdere posts.

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • daanmsvl
  • Registratie: Juli 2005
  • Laatst online: 17-06-2021
TaraWij schreef op vrijdag 21 maart 2008 @ 20:33:
Gebruik je toevallig Windows Vista? Mischien werkt de SuperFetch niet naar behoren waardoor een oude versie in het geheugen bleef.
Gelukkig geen Vista hier!

"Military intelligence is a contradiction in terms." - Groucho Marx, American Comedian, Actor and Singer, 1890-1977


Acties:
  • 0 Henk 'm!

  • TaraWij
  • Registratie: December 2007
  • Laatst online: 08-02 18:37
daanmsvl schreef op vrijdag 21 maart 2008 @ 20:41:
[...]

Gelukkig geen Vista hier!
Niet dat dit een bekend probleem is zover ik weet, maar dat kan kon bij jou toevallig om een vage reden voorkomen. (Wat me sterkt lijkt)

Overigens niets mis met Vista, in XP heb je trowens ook SuperFetch. (wel minder goed)
Pagina: 1