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-0117:34Har lovat att laga mat ikväll, trots att jag knappt kan koka makaroner utan att bränna ner köket. Tänker bjuda på en s.k. wadköpingsbricka: Pulvermos, Lithells-korv och bostongurka. Jag startar gärna en YouTube-kanal om matlagning för män, ifall de blir änkemän.
2024-12-0111:51Självsmutskastandet borde i så fall förstärkas av att man låter den som anklagas komma till tals, men av någon anledning undviker oseriösa journalister det, till varje pris. Varför, tror ni? https://x.com/MartinAagaard/status/1862835133813870789
2024-11-3016:35Anledningen till att Dagens ETC, en tidning som alla tänkande människor hatar, lever: Skatter och bidrag. Så länge den lilla människan går med på att finansiera den socialistiska borgerligheten kan vi inte bekämpa fattigdomen. https://x.com/JohanIngero/status/1862844148480413696
2024-11-3015:42Frugan har julpyntat matrummet (hyacinterna på spiskransen saknas). Nu ska vi käka tapas och lösa en mordgåta. Trevlig helg! https://www.instagram.com/p/DC_80tmIxa0/
2024-11-3013:40Nu har jag jämfört "Queen" från 1973 med "Queen I" från 2024. Visst är "Queen I" lite bättre, men skivan har fått en annan karaktär. Trummorna låter lite för moderna, nästan som något David Richards skulle ha kunnat göra. CD-versionen lär... https://www.instagram.com/p/DC_u7r7IIiR/

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