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!

DateTimeTwitter/X
2024-04-1921:58SVT måste avvecklas. Här står vi nu:
2024-04-1918:59Det finns många att välja på. Basinger, Whittaker, Hannah, Sandra... Men jag har inte gjort någon hemlighet om denna:
2024-04-1918:01Jag kan faktiskt hålla med om att SVT är vänsterns grej, och inte något där man ska ge en röst till någon som kan misstänkas vara höger, då det riktar udden mot det egna lägret. Men jag håller inte med om att det är så det ska vara.
2024-04-1912:40Expressen var ju skitglada över länkskatten. Äntligen skulle Google behöva betala för att skicka trafik till http://expressen.se! Men idag pratar man inte så mycket om länkskatten. Varför inte? Texten är från 2019.
2024-04-1908:50Hon fortsätter att förbrylla. Men hennes politiska ställningstaganden kan ju vara en del av en image, inte något som hon faktiskt tror på eller står för.

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