Kezdőoldal » Számítástechnika » Programozás » Ubuntun monoban miért nem...

Ubuntun monoban miért nem működik ez C#ban?

Figyelt kérdés

Na én többnyire úgy szoktam csinálni a programom, hogy:

static void Main(string[] args)

{

new Program();

}


Szóval a main stringben van egy new Program.

A főprogram részben pedig egy:

Program{

Console.WriteLine("Hello");

}


Viszont ezt a mono nem hagyja, miért nem? Újabb .net kell a linuxnak, vagy ilyesmi? Elég kezdő linuxos vagyok, csak a gépem mellé beszereztem egy Celeron-os laptopot, és nem akarok windows 10-zel szenvedni rajt, úgyhogy kapott egy xubuntut. Minden féle programozást megszeretnék azon is oldani!


2020. szept. 16. 07:41
 1/7 anonim ***** válasza:
Először tanuld meg a linuxot, aztán kezdj alatta programozni.
2020. szept. 16. 08:06
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:
80%

"Viszont ezt a mono nem hagyja, miért nem?"


Mit jelent az, hogy nem hagyja? Kapálózik és orrbavág ha le mered fordítani?

2020. szept. 16. 09:03
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:

Inkább azt mondanám, hogy először tanuld meg a C# nyelvtanát. De ha te mindenképp így akarod csinálni...


public class Program {

.. public static void Main(string[] args) {

.. .. new Program();

.. }


.. public Program() {

.. .. //ez így bad practice, a konstruktor nem erre való

.. .. Console.WriteLine("Hali!");

.. }

}


Ha már mindenképp így akarod csinálni, akkor legalább ennyire vedd a fáradságot:


public class Program {

.. public static void Main(string[] args) {

.. .. Program p = new Program();

.. .. p.Run();

.. }


.. public void Run() {

.. .. Console.WriteLine("Hali!");

.. }

}


De amúgy ennek se nagyon van értelme.

2020. szept. 16. 09:53
Hasznos számodra ez a válasz?
 4/7 tabaki ***** válasza:

Látom, hogy amíg fogalmazgattam, 09:59 elmondta a lényeget, de ha már piszmogtam vele, beküldöm:


𝘌𝘡 ugyanúgy nem működik Debianban sem, és megkockáztatom, hogy Windowsban is lehetnek vele problémák. Ha már nem tudod elmesélni a gondod-bajod, legalább a teljes programoddal kedveskedhettél volna. Ha a megjegyzéseidnek hinni lehet, egyelőre lila ködben lebeg előtted a C#-programozás teljes mibenléte.

Amit te „main string”-nek nevezel, az korántsem string, hanem az általad feltüntetésre méltatlannak ítélt Program osztályod fő metódusa – arról nem tehet szegény, hogy a zárójelei közé beírtál egy ehelyt tökéletesen fölösleges string argumentumot. A benne lévő „new Program” – amit te „főprogram rész”-nek titulálsz – pedig ugyanennek az osztálynak a konstruktora, egyébként szintén vétlen abban, hogy ettől a szerepétől független feladatot végeztetsz vele. Mellesleg ez a program még vígan elvolna konstruktor nélkül is, de ha már van neki, a neve is bátran lehetne Macisajt vagy Csipkefa aszerint, hogy éppen milyen nevet adtál az osztálynak, tehát a „main stringben van egy new Program” többszörösen nem jelent semmit. Anélkül, hogy erőteljesebben beleártanám magamat a programodba, annak valami efféle formában mindenesetre működnie kéne:


using System;


public class Program{

      Program()

      {

            Console.WriteLine("Hello");

      }


      static void Main()

      {

            new Program();

      }

}

2020. szept. 16. 10:30
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

A teljes programom így nézett ki. A lényeg, hogy programozást tanulok, több nyelvet is, főként C#-ot. Van asztali gépem, windows 10-zel, viszont egy ismerős által be tudok szerezni elég jó áron egy 5 éves celeron-os laptopot. Mivel nem szeretném magam kínozni ezen windows 10-zel, így erre egy xubuntut tennék. Linuxoztam már, csak nem sokat, ugyan is a játékok miatt nem tudtam kiváltani a teljes rendszert.

Visual Studio 2019-et használok, abban alapból, ha egy framework-os console app-ot létre hozok, akkor abba a "static void Main(string[] args)"-t alapból bele teszi. Az egyszerűbb programokat pedig úgy szoktuk írni, hogy ebbe megy egy "new Program();", a class-ba pedig egy Program() {}, és abba ami a főprogram része, nem metódus.

Na de a gond az, hogy linux alatt a mono ezt nem tudja nekem, de szeretném megoldani, ugyan is így sokkal egyszerűbb:)

Írtam is, hogy kezdő linuxos vagyok, és nem szuper programozó, csak tanuló, ezért elnézést kérnék, de nem lehordást. Értelmesebb válaszokat pedig köszönöm!

2020. szept. 16. 17:32
 6/7 anonim ***** válasza:
Mint tanuló, kérlek, konstruktorba ne tegyél logikát. Az arra van kitalálva, hogy egy objektumot inicializálj vele, semmi többre. Attól, hogy ti ezt így szoktátok, az bár egy működő, de nagyon rossz szokás. Ezzel gyakorlatilag azt írod le, hogy a baba születése közben már dolgozik.
2020. szept. 16. 17:48
Hasznos számodra ez a válasz?
 7/7 tabaki ***** válasza:
Ez a linuxtól független kérdés. Telepítsd a Monodevelopot IDE-ként, az is ír egy kis programvázat, ha konzolos applikációt kérsz. De ettől még nem ártana, ha tudnád, mi mire való, és nem szentírásnak vennéd, amit a program jónak lát odabiggyeszteni. Én a magam részéről hasznosabbnak látnám ugyan, ha mondjuk a Geanyvel kezdenél (ott elég egyszerűen át is tudod szerkeszteni az alapfájlt), és a tudásodra hagyatkozva írnád a programokat, de a későbbiek érdekében talán mégsem árt, ha eleve a böhöm fejlesztőkörnyezet bonyodalmaihoz és lehetőségeihez szoksz hozzá.
2020. szept. 17. 02:35
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!