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-12-2110:04Henrik Jönsson pudlar efter kritiken från SVT. Bra! https://www.youtube.com/watch?v=XIbkRNrw4pc
2024-12-2014:13När socialisterna gnäller över regeringen, så måste de ha gjort något bra. Gnället över minskad terrorfinansiering (UNRWA) visade sig vara dubblat riktat stöd till den humanitära krisen i Gaza.
2024-12-1914:21Socialdemokraterna företräder 30% av folket, men drar in mer än dubbelt så mycket pengar som alla andra riksdagspartier tillsammans. Att hävda att skatt är förödande för dem, syftar bara till att tysta deras kritiker.
2024-12-1817:59Nu kan vi läsa den långa listan över tidningar som skattebetalarna ska finansiera. Om fri media är viktigt, varför tar man in skatt och delar ut det till den som lever upp till vissa kriterier, i stället för att bara strunta i att ta in skatten och låta media behålla sina pengar?
2024-12-1511:00Att jobba och betala inkomstskatt blir man inte rik på, det gäller att på mottagarsidan. https://www.sydsvenskan.se/2024-12-15/sydsvenskan-avslojar-flamman-lever-pa-bidrag-cheferna-tjanar-miljonbelopp/

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