C# kategória bejegyzései

C# verzió inkrementálás .NET Core 2-től

A régebbi, főleg a .NET Framework (4.8-ig bezárólag) használói valószínűleg megjegyezték, hogy a produktum automatikus verziózása egyszerűen megoldható volt a projekt tulajdonságai között az assembly verziót átírni (pl.) 1.0.* formátumra és az utrolsó két szekció automatikusan inkrementálódott (pl. 1.0.xxxx.yyyy).

.NET Core áthidaló megoldás

Na, ez a megoldás a .NET Core 2-től (a hibrid 5.0-t is beleértve) nem, vagy legalábbis nem pont így működik. De erre is van megoldás.

Amivel biztosan működik

.NET Core 2, 3 esetén, valamint a .NET 5.0 framework verziók esetében egészen biztosan működik az alábbi trükk.

Ehhez két fájlt kell módosítani, lehetőleg külső editorral, miközben a Visual Studio-ban az adott projektünk be van zárva.

A projektfájl (.jcsproj)

Ez egy XML fájl lesz, melyben kell lennie egy PropertyGroup csomópontnak, az itt lévő többi tulajdonság változtatása nélkül kell beszúrni a két, alábbi tulajdonságot. Mentsük a fájlt és zárjuk be.


	…
	False
	False
	…

A program class (program.cs)

Azt a program.cs fájl kell még editálnunk, amelyben a Main() metódus található.

Ide szúrjuk be az alábbi sort, az using szekció alá, annak utolsó sorát követő új sorba.

[assembly: System.Reflection.AssemblyVersionAttribute("1.0.*")]

Innentől kezdve minden build esetén inkrementálódik a verziószám utolsó szekciója, az utolsó előtti pedig minden nap fog új kombinációt kapni.

[C#] Egyszerű és gyors inputbox adatbekéréshez

Ha a felhasználótól szeretnénk adatot bekérni, viszonylag ritka eset az, hogy egyetlen stringet (vagy stringből átalakítható egyéb adattípust) kérjünk be, de akár elő is fordulhat. Egészen biztosan van ezer plusz egyféle NuGet package ennek megoldására, illetve összetett adat esetén egyébként is javasolt a saját adatbekérő form használata. De ha egyrészt egy gyors, gyári megoldást szeretnénk, másrészt nem kell semmi sallang, erre van egy kevésbé ismert beépített megoldás.

Aki Visual Basic-ben programozik, annak ismerős lesz, de azt talán kevesen tudják, hogy ez elérhető C#-ban is.

C# inputbox

Hogyan működik?

Először is adjuk hozzá a megfelelő VB refrence-t a projektünkhöz:

[Projektnév] > Add > Reference > Assemblies > Microsoft.VisualBasic

C# inputbox

Majd tegyük be a class fejlécébe:

using Microsoft.VisualBasic;

Végül használjuk:

string input = Interaction.InputBox("Prompt", "Title", "Default", x_coordinate, y_coordinate);

C# inputbox

A visszatérési érték egy string a beírt adattal. Üresen hagyott mező vagy "Mégse" gomb lenyomása esetén üres string az eredmény. Csak az első paraméter kötelező, a többi opcionális., ez lesz az inputbox szöveges (magyarázó) része. A többi opcionális, a második lesz az inputbox címsora, a harmadik a default szöveg a beviteli mezőben, míg az utolsó kettő az űrlap pozícióját határozza meg.

Azt nem mondom, hogy minden bajunkat ez meg fogja oldani, de egyrészt rém egyszerű és mindig kéznél van, másrészt ha épp csak ennyire van szükségünk, akkor fölösleges túlbonyolítani.

Egyedüli hátránya, hogy sajnos a kapott inputbox nem átmérezhető, sem programozottan, sem futtatáskor.

//Statelit is marked deprecated and will be removed in the next version