[C#] syntax error (???)

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Alesh2020 14. 10. 2021 16:42

Ale na blbým místě :-( to mi vysvětlil jiný uživatel.
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 14. 10. 2021 20:37

Proč na blbým místě? Na tom kódu z 9 ráno stačilo změnit to "<=" na "<" a začalo by to fungovat.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 10. 2021 07:30

Jo, ale házelo mi to tenhle fajl:
Závažnost Kód Popis Projekt Soubor Řádek Stav potlačení
Chyba CS0127 Protože Program.Main(string[]) vrací void, nesmí za klíčovým slovem return následovat výraz objektu. faktorial C:\Users\Stiglitz\Desktop\PROJEKTY\12rijna\86\faktorial\Program.cs 27 Aktivní


Páč tohleto bylo umístěno na špatným místě, údajně... když sem to dal tam, kam mi bylo doporučeno, fajn zmizel, šlo to kompilovat, a appka se chovala normálně.

Kód: Vybrat vše
if (n == 0)
{
    return 1;
}
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 10. 2021 07:49

V tom kódu, který jsi sem dával v 9 ráno, ti to tu chybu rozhodně nehlásilo.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 10. 2021 08:31

No, hlavně že je to už vyřešeno.
Občas - už od začátku - se mi děje tahle věc:
Kód: Vybrat vše
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestovkaA
{
    class mezery
    {
    }


Chyba CS1513 Očekával se znak }.


Zdůrazňuju, že je to "správná" závorka, tudíž } (AltGr + N), necpu tam ) nebo ]. Jak lze i v tom kódu vidět. Jediné, co mě napadá je, že není na správné pozici. Ale i tak... je přímo pod kamarádkou {.

Ono stačí udělat tohle, tj. uzavřít i tu linii "namespace" (nebo jak se tomu v hantýrce správně říká), ale proč to řve o řádku 11, když neuzavřenej je řádek 12, to nechápu.

https://files.fm/u/85qvtv2su
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 10. 2021 08:35

Vůbec nezáleží na pozici tě závorky, to odsazení se dělá jenom kvůli lepší přehlednosti. Klidně může být i na řádku 11. Podstatné ale je, aby všechny závorky byly správně uzavřeny. Máš tam dvě otevírací, ale pouze jednu zavírací.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 10. 2021 08:59

Jasně, díky.
Ono stačí udělat tohle, tj. uzavřít i tu linii "namespace" (nebo jak se tomu v hantýrce správně říká), ale proč to řve o řádku 11, když neuzavřenej je řádek 12, to nechápu.


A mám tomu {prostoru} jak přesně říkat, ať nemluvím jak Král Klacek? Linie? Když se to dá srolovat, kliknutím na tu ikonku? https://files.fm/u/gzj7akr8c
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 10. 2021 09:07

Blok kódu
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 10. 2021 09:43

Díky...
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 10. 2021 20:46

Na jednom fóru bylo psáno, že "var" může nahradit deklaraci typu proměnné, takže když mám proměnou "int penize = 100", můžu napsat "var penize = 100".

Jak ale kompilátor pozná, že to je int, a n třeba byte? Pořád jde o čísla...
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 10. 2021 20:52

Pokud tam není uvedený typ, tak se použije int, uint, long nebo ulong. Podle toho, jak velký typ je pro danou hodnotu potřeba.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 10. 2021 21:04

Takže "int penize = 500" nahradím "var penize = 500" tak je ten překladač až tak chytrej, že mu docvakne, že do byte by to nenacpal? To je překvapující... (občas si řikám, k čemu ta byte vlastně je dobrá, když je tak malá, a všude nacpat int nic nestojí > nějakej atavismus?)

PS: soubory pro překlad textů ve většině verzí Unreal engine (jsou do nich "vyvedeny" herní texty, aby se daly snáz přeložit) jsou tak .int. To má nějakej smysl, nebo je to jen "shoda jmen", když je to text, mělo by to být string... jen tak, ze zvědavosti.
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Wikan 15. 10. 2021 21:14

Až tak chytrej? Tohle je naprostá prkotina oproti jiným optimalizacím, které tam provádí.
Byte zabírá 1 byte. Int zabírá 4. Jsou situace, kdy i každý ušetřený byte může mít vliv.

Nejspíš jde o náhodu. U překladů bude "int" nejspíš souviset s "international". Kdežto v C# a jiných jazycích je "int" od "integer" = celé číslo.
Wikan
Moderátor
Uživatelský avatar

Odeslat příspěvekod Alesh2020 15. 10. 2021 22:55

A když tam - v článku - někdo napíše "Poznamenejme, že slovo var nelze použít v deklaraci formálního parametru nebo datové složky třídy." co tím chtěl básník říct?
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Odeslat příspěvekod Alesh2020 16. 10. 2021 08:17

https://files.fm/u/5gb4yghyu

Celá ta kapitola 6.1.3 je vlastně o tom, že proměnná hodnotového typu je proměnnou sama o sobě (jednou deklarovanou, jednou použitou) zatímco proměnná referenčního typu je je odkaz na místo v paměti, kde je uložen text "Neděkujem, vypadněte" a ten "odkaz (identifikátor) s" pak můžu nabouchat na třeba 8 míst v paměti, abych nemusel 8-krát definovat proměnnou s tím textem. Ušetřím námahu, čas i místo v paměti.
Ách jo, kam si má teda člověk psát poznámky... :hm
Alesh2020
Junior
Uživatelský avatar

Předchozí stránkaDalší stránka

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků