- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Azonnali alaplapos kérdések órája
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Hobby elektronika
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Vezetékes FEJhallgatók
- HDMI topic
- OLED monitor topik
- Melyik tápegységet vegyem?
Új hozzászólás Aktív témák
-
joysefke
veterán
válasz
CPT.Pirk #9919 üzenetére
A projekt számára hatalmas pozitív lépés lenne, ebből a TryPop hozzáadott értéke szerintem nulla.
Egy üres konzol projektet triviális upgradelni NET6-ra, (átírsz a csproj-ban egy sort) egy nagy applikációt viszont nem lesz ilyen egyszerű.
Ha van .NET fejlesztő aki ezt főműsorban fejleszti, azt meg lehetne kérdezni, hogy ez miért nem történt még meg.
-
martonx
veterán
válasz
CPT.Pirk #9917 üzenetére
Ez esetben van egy jó hírem: Most gyorsan kipróbáltam .Net 7-tel. Ezek voltak a beállításaim a csproj file-ban:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net7.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<PublishReadyToRun>true</PublishReadyToRun>
<PublishTrimmed>true</PublishTrimmed>
</PropertyGroup>
</Project>Lelövöm a poént 14Mb-os lett a dotnet publish után előálló .exe file-om, amiben benne van a szükséges runtime is. Igaz, hogy ez csak egy console app.
"másik nyelvnél még ilyen megoldással nem találkoztam" - nincs hátránya, hacsak az nem, hogy ilyenkor kötelező előre megmondanod, milyen OS-t célzol meg. Más nyelveknék előbb telepítened kell a runtime-ot, és majd csak utána tudsz bármit futtatni. A .Net eléggé király ezzel, hogy vinni tudja magával a minimálisan szükséges runtime-ot (gyorsan tegyük hozzá, hogy ez csak console appokra igaz cross platform szinten, nem cross-platform szinten windows only feature).
-
joysefke
veterán
válasz
CPT.Pirk #9911 üzenetére
Ilyenkor mi van?
Használod a Peek-etvagy updatelsz .NET 6-ra (Standard 2.1-re)
Netes példákban én is láttam ezeket, de nem írták, hogy valamit kellene hozzájuk bekapcsolni.
1,
A MS-nak egész jó online C# / .NET doksija van /learn.microsoft.com/. Első körben, ha full homály valaminek a működése, akkor azt érdemes megnézni.
Queue<T>.Peek Method (System.Collections.Generic) | Microsoft LearnA bal felső sarokban a drop-downból ki is tudod választani, hogy mi a target framework verziója.
2,
Sajnos nem készült dokumentáció a kódról pár soros szösszeneteken túl, így a "mire gondolt a költő" helyzet van mikor nézem mi lehet a gond.Ha ténylegesen meg kell értened hogy mit csinál az a metódus amit belinkeltél, akkor mivel tiszta függvénynek tűnik és fontos logikát kódol (tehát minimális befektetéssel tudsz hasznos tesztet írni), ezért a legjobb amit tehetsz, ha írsz rá unit-teszteket, azt könnyű futtatni, debuggolni, ezért egyszerre tudod megérteni és kikupálni a függvényt.
Ehhez persze az kéne, hogy a unit teszt vagy elérje a metódust /A/ vagy a metódus ne az osztályban legyen deklarálva /D/, vagy objektumként /B/ vagy delegate-ként /C/ átadva, így tesztelhetővé válik.
-
joysefke
veterán
válasz
CPT.Pirk #9904 üzenetére
A leírásod arra utalt, hogy még "látod", hogy van benne elem és úgy dob exceptiönt.
Debug buildben látnod kellett volna a ciklus fején a feltétel ellenőrzése előtt hogy üres a stack -kurzort fölé viszed-.Ha az a baj, hogy kifogyott a Queue, akkor éppen berakhatsz egy (Count > 0) && -t a feltétel elejére vagy Peek() helyett TryPeek(out string)-kel dolgozol.
if (s1.TryPeek(out string item) && item != "&&" && item !="||" )
{
s1.Pop();
}
-
quailstorm
félisten
válasz
CPT.Pirk #9904 üzenetére
Igen, így van. A Peek üres stack esetén exceptiont dob. Szóval az utolsó pop után a következő feltételellenőrzés a while-ban exception, nem pedig false. A Count ellenőrzése jó lesz.
-
joysefke
veterán
-
fatal`
titán
válasz
CPT.Pirk #9897 üzenetére
Ott valami más gond lesz.
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
var stack = new Stack<string>();
stack.Push("1");
stack.Push("2");
Console.WriteLine(stack.Pop());
Console.WriteLine(stack.Pop());
}
}Kimenet
2
1
Ha InvalidOperationt dob, akkor a második Popnál már üres a stack. Vagyis vagy bele sem került, vagy valamikor ki lett már véve az elem, amit nem figyeltél.A VS amúgy csak egy fejlesztőkörnyezet, olyan mintha Java-nál azt kérdeznéd, hogy IDEA alatt miért dob valami exceptiont.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- A fociról könnyedén, egy baráti társaságban
- Kínai és egyéb olcsó órák topikja
- Hardcore café
- Parkside szerszám kibeszélő
- Kerékpárosok, bringások ide!
- Gurulunk, WAZE?!
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Azonnali alaplapos kérdések órája
- Szombathely és környéke adok-veszek-beszélgetek
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- HP Zbook 14 laptop (14FHD/I7-G5/8GB/128SSD/MagyarVilágítós)
- Jó áron ÁRON ELADÓ! Üzleti HP Elitebook 1040 G9 Laptop! / i5-1245U 16GB 256GB
- Szuper áron DELL XPS 13 7390 /i7-10510U/16 GB Ram/512 GB SSD/IPS/
- ÁRESŐ! Dell Inspiron 3493 /10.gen i5-1035G1/8GB/512 GB SSD FHD
- Akciós áron eladó HP Elitebook 845 G7 / AMD Ryzen 5 pro-4650U/16 GB/256 SSD/14"/FHD/IPS/Gari/touch
- LG 77G3 - 77" OLED evo - 4K 120Hz 0.1ms - MLA - 2000 Nits - NVIDIA G-Sync - AMD FreeSync - HDMI 2.1
- Azonnali készpénzes Sony Playstation 5 lemezes és digitális felvásárlás személyesen/csomagküldéssel
- 2db Dell PowerEdge R740 2U Rack Szerver és 3db Netapp FAS2040 NAS
- Készpénzes számítógép PC félkonfig alkatrész hardver felvásárlás személyesen / postával korrekt áron
- Azonnali készpénzes GAMER / üzleti notebook felvásárlás személyesen / csomagküldéssel korrekt áron
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest