Ú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
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Autós topik látogatók beszélgetős, offolós topikja
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- iPhone topik
- HiFi műszaki szemmel - sztereó hangrendszerek
- Autóápolás, karbantartás, fényezés
- alza vélemények - tapasztalatok
- Minden, ami Unreal Engine
- BestBuy topik
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Windows 11
- További aktív témák...
- Microsoft Surface Pro 7 Érintős Szétszedhető Laptop Tablet 12,3" -80% i5-1035G4 8/256 Retina
- Mars Gaming MK60W 60% Mechanikus Blue Switches Gamer Billentyűzet Spanyol Kiosztás
- 2019 - BMW I3S 120Ah
- ASUS ROG Strix G15 144Hz / AMD Ryzen 5 / RTX 3050Ti / 16GB RAM / 512GB SSD
- Microsoft Surface Pro 7+ Érintős Szétszedhető Laptop Tablet 12,3" -80% i5-1135G7 16/256 Retina
- Nyugdíjazott laptopok :) Ingyen Foxpost!
- ÁRGARANCIA!Épített KomPhone Ryzen 5 4500 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
- BESZÁMÍTÁS! LG 24GM79G-B 24 144Hz FHD TN 1ms monitor garanciával hibátlan működéssel
- Telefon felváráslás!! Samsung Galaxy S22/Samsung Galaxy S22+/Samsung Galaxy S22 Ultra
- RÉSZLETRE .OPCIONÁLIS. Acer Nitro V ANV15-51-554Z SZÁMLA , GARANCIA
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest