- VR topik (Oculus Rift, stb.)
- Nem indul és mi a baja a gépemnek topik
- A hírek szerint 10%-ot vásárolna az Intelből az USA
- Milyen videókártyát?
- SSD kibeszélő
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Pénztárcabarát, ugyanakkor trendi mikrotorony jött a Jonsbótól
- Melyik tápegységet vegyem?
- Plazma TV topic
- Milyen asztali (teljes vagy fél-) gépet vegyek?
Ú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!
- VR topik (Oculus Rift, stb.)
- Nem indul és mi a baja a gépemnek topik
- WhrlpoolMind: Búcsú a HD3870-től
- alza vélemények - tapasztalatok
- BestBuy topik
- Megjött Magyarországra a legnagyobb akkuval szerelt Redmi
- Gitáros topic
- Kínai és egyéb olcsó órák topikja
- Futás, futópályák
- Milyen autót vegyek?
- További aktív témák...
- MacBook, Apple M1 / M2 kompatibilis dokkolók, DisplayLink 4K, USB-C, Type-C
- GYÖNYÖRŰ iPhone 11 128GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS3128
- Bomba ár! Fujitsu LifeBook U7310 - i5-10GEN I 16GB I 256SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
- Lenovo Yoga Pro 9 (14IRP8) - Intel Core i9-13905H, RTX 4060
- Bomba ár! Dell Latitude 5401 - i5-9400H I 8GB I 256SSD I 14" FHD I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: FOTC
Város: Budapest