Startsidan  ▸  Texter  ▸  C#

Anders Hesselbom

Programmerare, skeptiker, sekulärhumanist, antirasist.
Författare till bok om C64 och senbliven lantis.
Röstar pirat.

C#

Blandade texter om C# genom åren
C#

Det finns enorma optimeringsmöjligheter när man använder GDI från .NET (2023-07-17)

När man ska jobba med bitmapsgrafik i .NET är prestanda en ständigt återkommande utmaning. I .NET har vi dels tillgång till GDI (som låter oss rita pixlar individuellt) och något som kallas för GDI+, som erbjuder möjligheten att rita geometriska... Läs hela texten.

Referenstyper eller värdetyper? (2023-04-11)

Programmeringsspråket C# skiljer på referenstyper och värdetyper. I andra högnivåspråk, som t.ex. Java, har man fram till nyligen bara antagit att egna typer är referenstyper, men som C#-programmerare... Läs hela texten. Del 2.

Rendera mandelbrotmängden (2021-12-15)

Min första kontakt med mandelbrotmängden var ett BASIC-program av Bo E. Carlsson runt 1990. Sedan dess har Andrej Bauer... Läs hela texten.

Lorenz vattenhjul (2021-07-03)

Lorenz-attraktionen är en fraktal vars formel beskriver en rotationshastighet (illustrerat med en radie) och en rotationsriktning. Så här ser den ut, implementerad i Commodore BASIC 7.0... Läs hela texten.

C# from the command window (2020-11-20)

If you are using .NET Core (or .NET 5.0) you can easily activate the ability to run C# code from the command window (Windows Terminal or the old cmd.exe)... Läs hela texten.

DOD är bättre OOD för tidskritiska system (2020-08-29)

Objektorienterad design (OOD) är ofta ett bra val för att det är relativt enkelt att använda med robusta mönster att följa. Men när man programmerar tidskritiskt, som t.ex. i när man gör spel, kan det vara värt att titta på dataorienterad design (DOD). Läs hela texten.

Metabollar (2019-12-14)

Jag tänkte visa en komplett implementation av 2-dimensionella metabollar i C#. Denna teknik skulle även kunna användas i 3D. Effekten ser ut... Läs hela texten.

Funktioner är andra klassens medborgare i C# (2019-11-24)

I C# 8 är fortfarande funktioner ett slags “andra klassens medborgare” i jämförelse med variabler. Man kan alltså fortfarande göra mer med en variabel än en funktion i C# 8. Varken variabler eller funktioner kan skapas i namnrymder... Läs hela texten.

Value tuples i C# 7.3 (2019-03-17)

En av många anledningar till att jag älskar C#: Språkligt stöd för value tuples! Läs hela texten.

Pathfinding i terräng (2019-01-19)

A* (A-star) är en snabb pathfinder-algoritm som kan användas i t.ex. strategispel för att hitta vägar genom labyrinter eller terräng. Christoph Husse publicerade 2010 en briljant implementation i C# som tillåter egna kriterier, definierade i en solver, för kostnaden att flytta sig från... Läs hela texten.

Harter-Heighways drakkurva (2018-01-28)

Harter-Heighways drakkurva är en enkel och vacker linjär fraktal med många intressanta attribut. Dels är dess kontur självrepetitiv och kan pusslas ihop med lika dana konturer på många olika sätt, och linjen som kurvan består av korsar aldrig sig själv, oavsett hur lång drakkurva man väljer att rita. En drakkurva kan beskrivas som en serie av höger- och vänstersvängar... Läs hela texten.

Microsoft Cognitive Services: Computer Vision (2018-01-26)

Kognition är den process som i förhållande till erfarenheter omvandlar sinnesintryck till en uppfattning om verkligheten. Microsoft erbjuder ett öppet programgränssnitt (API) för kognitiva tjänster som bl.a. hanterar visuellt innehåll, tal, språk och kunskap, och det är svårt att inte imponeras över vad som kan åstadkommas! Programgränssnittet är ett REST-API och kan därför användas från i princip vilket språk som helst... Läs hela texten.

Lazy evaluated string interpolation (2017-09-05)

Sedan version 6 av C# har man haft stöd för string interpolation, och sedan dess har det varit möjligt att exekvera kod i en C#-sträng. Säkerhet uppnås genom att strängen utvärderas i det omfång (scope) som den skapas. Det normala beteendet är att en sträng utvärderas i samma ögonblick som den skapas, vilket betyder att om man skickar en interpolerad sträng till en funktion, så är den utvärderad och klar när funktionen använder strängen. Strängen får inte innehålla fulla programsatser, endast uttryck. Följande kod visar hur... Läs hela texten.

Kort kod och syftningsfel (2017-09-22)

Det finns ibland flera sätt att göra till synes samma sak i C#, t.ex. när det gäller operatörsöverlagring. De olika teknikerna bär på olika syften, och det är ofta bättre att vara tydlig med sina syften än att försöka skriva så kort kod som möjligt. I en situation där man vill kontrollera om ett objekt är korrekt konfigurerat... Läs hela texten.

Late binding i C# (2017-09-01)

Traditionellt har Visual Basic haft stöd för både early och late binding. Med early binding (statiskt avsändande) avses användning objekt vars typ är känd redan vid kompilering, medan med late binding (dynamiskt avsändande) avses användning av objekt vars typ inte är känd förrän i runtime. Early binding ger typsäkerhet och även bättre prestanda, men man förlorar en del flexibilitet. I Visual Basic har man valt att använda Object som dynamisk typ. Det skulle kunna... Läs hela texten.

Förenklad hantering av funktioner som producerar multipla värden i C# (2017-02-20)

Ganska ofta infinner sig behovet av att bygga en funktion som producerar mer än ett värde. Detta löser man exempelvis med hjälp av utparametrar eller tuples (sv: tupel) och båda metoderna har fått bättre stöd i C# version 7.0. Utparametrar har tidigare endast kunnat användas mot fördeklarerade variabler, vilket innebär att variablerna är hänvisade till ett större scope än vad som kanske behövs, vilket kan illustreras med följande exempel. Koden nedan skapar en variabel – count – i en kontext som är större än nödvändigt. Variabeln får sitt värde i konstruktoranropet, och används bara tillsammans med returen från konstruktoranropet, men den... Läs hela texten.

Labyrint (recursive backtracking) (2017-01-17)

Jag har börjat arbeta med ett datorspel i kategorin roguelike. Varje spel ska vara unikt, så kartan genereras när en användare spelar spelet. Vid uppstart skapar jag en labyrint som sen används som kontur för rummen som genereras efter behov. De rum som spelaren inte besöker behöver man trots allt inte hålla i RAM, men jag vill ha konturen färdig för att kunna ha lite kontroll över... Läs hela texten.

Introduktion till evolutionära algoritmer (2016-10-16)

Om aktörer (2015-05-15)

Det finns tre olika typer av aktörer i Akka .NET. Nedan använder jag en ReceiveActor som utmärker sig genom att den använder funktionen Receive för att ta emot ett meddelande. Exemplen som följer förutsätter att namnrymden Akka.Actor är inläst. Alla aktörer har en sökväg som är oberoende av vilken CLR-klass som beskriver dem... Läs hela texten.

Akka .NET Remote duplex (2015-05-15)

Jag har tidigare visat hur man skickar enkla meddelanden med Akka .NET Remote. Exemplet bestod av tre projekt, en server, ett datalager och en klient. Här tänkte jag visa hur man använder Akka .NET Remote för att både skicka och ta emot meddelanden. I detta exempel återanvänder jag servern BioServer och datalagret BioData från det förra exemplet... Läs hela texten.

Simple full screen support in Windows Forms (2014-10-14)

These simple steps lets you create a Windows Forms application with full screen support. I have changed the DoubleBuffered property to true for flicker free redrawing, StartPosition to Manual to be able to manage startup position in code and KeyPreview to true... Läs hela texten.

Om du istället är intresserad av material om Commodore, klicka här!

DateTimeX (Twitter)
2024-11-1917:35Tekniskt har en LP sämre ljud än en CD, men dels så kan man gilla ljudet av LP, man kan ha en utrustning som gör det absolut bästa av LP:n och man kanske vill lyssna på musik som inte släppts på CD. Men det är något annat som är lite charmigt. Jag ser t.ex. fortfarande på VHS.
2024-11-1818:36Alla vet tydligen att Socialdemokraterna har den mest restriktiva migrationspolitiken och förespråkar de strängaste straffen. För min del misstänker jag att Magdalena Andersson har samma talskrivare som Donald Trump.
2024-11-1716:07Jag som är en religionshatare måste ändå förhålla mig till fakta. Kulturell religion är inte samma sak som religiös tro, och Sverige ÄR kristet. Det kanske redan idag är så att fler aktivt troende är muslimer än kristna, men religiös tro är inte samma sak som kulturell religion! https://x.com/gynaeceum/status/1856814253576986996
2024-11-1617:37Vänsterpartister är smarta men onda. Centerpartister är korkade men goda. Socialdemokrater bara rullar på, skyddade av den maktstruktur de lyckats bygga upp.
2024-11-1518:02Bygg så många ni vill, vi bor i ett fritt land! Men vänta, vilka är "vi"...? https://x.com/gudmundson_per/status/1857464296285917367

Bibelns böcker

Om du läst ett bibelcitat på engelska och vill slå upp det på svenska, är det bra att veta vad motsvarande bok heter på svenska.

En kopp kaffe!

Bjud mig på en kopp kaffe (20:-) som tack för bra innehåll!

Bjud på en kopp kaffe!

Om...

Kontaktuppgifter, med mera, finns här.

Följ mig

Twitter Instagram
GitHub RSS

Public Service

Folkbildning om public service.

Hem   |   linktr.ee/hesselbom   |   winsoft.se   |   80tal.se   |   Filmtips