Let's learn about C Sharp via these 145 free blog posts. They are ordered by HackerNoon reader engagement data. Visit the Learn Repo or LearnRepo.com to find the most read blog posts about any technology.
C# is a modern, object-oriented programming language developed by Microsoft, widely used for building Windows desktop applications, games (with Unity), and web services via .NET. Its versatility and strong typing make it a popular choice for enterprise-level development.
1. Why Do You Need a Cancellation Token in C# for Tasks?
The algorithm how and when you should use cancellation tokens for tasks in c# to use cooperative cancellation when working on parallel computing projects.
2. Asynchronous Initialization in C#: Overcoming Constructor Limitations
Solutions to enable asynchronous initialization in C# constructors, overcoming limitations for efficient code execution.
3. Overloading Vs. Overriding in C#
Method overloading and overriding are two common forms of polymorphism ( the ability for a method or class to have multiple forms) in C# that are often confused because of their similar sounding names. In this article, we show the difference between the two with some practical code examples.
4. Understanding the Factory Pattern in C# — With Examples
The Factory pattern allows developers to create objects without specifying the exact class of object that will be created.
5. Logging in Azure with Application Insights and Serilog
This article reviews in details various aspects to make Application Insights and Serilog combination shine and bring real value to the logs.
6. The 3 C# PDF Libraries Every Developer Must Know
This article is about the top 3 C# PDF libraries for automating the process of creating and customization of PDF documents.
7. Building a High Performance TCP Server in C#
Write a high performance TCP Server in C# with low allocation asynchronous programming patterns.
8. From N-Tier to Clean Architecture with .NET
The evolution of n-tier architecture as clean architecture with reference to domain models domain and application services and other relevant parts of the topic
9. The Clever Programmer
A story of how a final year student with lofty credentials joined our small team.
10. StyleCop for .NET Makes Code Better
How to setup and configure StyleCop as a coding convention tool for .NET
11. Beginner's Guide to Inversion of Control
Explore Inversion of Control (IoC) in software engineering, understanding its benefits, implementation through dependency injection, and real-world applications
12. A Beginner's Guide Formatting Strings as Base64 in CSharp
Understanding C# string formatting with Base64 can bring many benefits to your programming and software development skills.
13. Understanding Concurrent Collections in C#
A brief introduction to concurrent collections in c sharp.
14. C# HTML to PDF - A Code Example
IronPDF is the ideal solution for converting HTML sites in .NET and .NET core projects. It not only transforms HTML but also has a lot of other useful capabili
15. How to Use Common EditorConfig as a NuGet Package
The story is about how to create a NuGet package with a .editorconfig and import it to all the projects.
16. Unity 2023.1 Introduces Awaitable Class
New Awaitable class in Unity 2023.1, methods, properties, usage. Emphasizes understanding async-await & experimenting for best results.
17. How to Generate a QR Code Image in Four Lines of Code
QR code is a computer-readable identification that contains data about the item to which it is attached. The article demonstrates how to generate QR-Code image.
18. The Ultimate C# QR Code Library Comparison for 2026
Compare 11 C# QR code libraries for .NET by generation, reading, styling, cross-platform support, and price to choose the right tool faster.
19. Creating a PDF File Programmatically in C#
IronPDF is a .NET library for creating PDFs programatically. It's fast, simple, and easy to use.
20. 6 Best C# Programming Books Ranked by Review Score
This list will rank each C# book based on their total number of reviews on Amazon alongside their average 5-star rating.
21. How to Work With Request Id in .NET Applications
Practice working with Request Id in .Net application. Reading it from a request and translating it into requests to other systems.
22. C#: From Fundamentals to Advanced Techniques - A Beginner-Friendly CheatSheet
The comprehensive C# Cheat Sheet is designed to aid developers in mastering key syntax and concepts related to C# programming.
23. The Complete Asynchronous Programming Primer for Unity Development
We consider the main ways of asynchronous programming in Unity: discuss pros and cons, illustrate code examples, and show practical examples.
24. How To Use Google Sheets in C#
Discover how to seamlessly integrate Google Sheets into your C# projects with the Google Sheets API.
25. OWASP Top 10 .NET Protection: A Guide (Part 1)
The OWASP Top 10 is a standard awareness document for developers and web application security. It represents a broad consensus about the most critical security risks to web applications.
In this article, I want to cover the first part of the TOP 10 vulnerabilities and how to protect against them using .NET.
26. A Deeper Dive Into Log Enrichment
In this article, we will conclude reviewing how logging concerns and code can be separated and decoupled from infrastructure and business code.
27. How to Achieve Immutable DTOs With C#
The story is about how to implement immutable DTOs with C#, both with the older method and with the newer 9 record reference type that recently came out
28. Using an Enum-Based Event Bus Pattern In Unity
The event bus pattern is a popular software design pattern used for exchanging messages between system components that are not directly linked to each other.
29. Exploring the Potential of Bioinformatics with C#
In this article, we'll examine how to apply bioinformatics and C# coding to effectively deal with biological information.
30. The Ultimate Guide to C# and C++ Interoperability Using C++/CLI
Learn how to efficiently bridge .NET (C#) and native C++ using P/Invoke and C++/CLI, with benchmarks and real-world integration tips.
31. A Guide to C# Tesseract OCR and a Comparison with IronOCR
This article offers a comprehensive guide to using Google Tesseracts in C#.
32. C# Barcode Library In-Depth Comparison: Ranked by Use Case
We tested 12 .NET barcode libraries side by side to help you choose the right SDK for scanning, generation, PDFs, and mobile apps.
33. How to Handle Configuration for Multiple Environments in Console App Service?
How I automated the process of service deployment for a console application after issues caused due to multiple configuration environments.
34. Building an End-to-End Dynamic C# Web API with Dapper for Data Access
Step-by-step guide on how to create an end-to-end dynamic C# Web API project using Dapper for data access.
35. When The Oldest Programming Language Outsmarts The Newest AI
C++ was not supposed to come back.
36. The Top C# .NET Excel API Libraries
Explore the top C# .NET Excel API Libraries and their notable features for your applications in this review of leading options.
37. RISC-V: Pioneering Windows Assembly - A New Era in Computing
In this article, we will explore what RISC-V is, why it's important to be on Windows, and the potential impact of RISC-V on the Windows platform.
38. Implementing Strategy Pattern with .NET 8
The strategy pattern is one of the most common and easily recognizable patterns but implementing it on the.NET platform is a pain.
39. Exploring the Practical Applications of Reflection in C#
Reflection makes a lot of confusion for the C# developers when it comes to the question of the real-life practical use of it. This article shows how to do that.
40. AutoMapper vs. Mapster—Know When to Use Which With This Guide
AutoMapper vs. Mapster: A comparison of popular .NET libraries for object mapping. Learn which tool to choose for flexibility, performance, and ease of use.
41. The Top C# .NET UI Controls
Explore the top C# .NET UI controls and their notable features for your applications in this review of leading options.
42. Finding the Best Reporting Tools and Report Designers for .NET C# Applications
When looking for the perfect .NET reporting solution to design meaningful reports, there are quite a few factors you must consider when evaluating your options.
43. 5 Performance Tips For .Net Developers
Hi everyone! Today I want to share with you some .Net 5 performance tips with benchmarking!
44. How to Become a Multi-Language Programmer in 2021
Are you just taking your first step into web development, and you want to learn programming? Discover the benefits of learning more than one programming language.
45. How to Use Azure Functions to Build a QR Code Generator
How to build a fun QR code project and learn about Azure Functions at the same time. Using the latest .NET technologies.
46. How to Solve the Microsoft.Data.SqlClient.SqlException (0x80131904): Incorrect syntax near '$ Error
In .NET8/EF8, when working with the SQL Server, EF might create a newer version of SQL queries that old SQL servers/databases will not understand
47. The Battle Continues Between Dapper and EF Core
Dapper and EF Core are popular .NET libraries for data access and management. Both have strengths and weaknesses, and the choice will depend on the project's sp
48. I Just Want to See It Work: Kafka Stream, C# Producer and Consumer
A quick start for running Kafka in docker container, and a working example of a producer and a consumer in C# .NET
49. Memory Mastery: Comparing Unity and .NET Garbage Collection
Learn the differences between garbage collection in Unity and .NET, then go deep into the specifics of memory management in Unity.
50. Essential Entity Framework Core Tips: How to Optimize Performance, Streamline Queries, and More
Learn how to boost query performance, operations, and manage large datasets effectively. From basic to advanced tips for developers looking to enhance their EF
51. A Critical Detail about Kafka Partitioners
Kafka works with key-value pairs, so getting records with the same key on the same partition is essential.
52. Accessing the Record Type in C# for Earlier .NET Versions
Are you stuck on earlier versions of .NET but want to get your hands on the hot new record types? Fear not! Check out this simple solution to simplify things!
53. MudBlazor List Items: How To Create Killer Blazor List Views
See how you can use MudBlazor list items to make awesome GUIs! Properly leverage the MustList and MudListItem controls to get custom user interfaces!
54. HTML to PDF Conversion using Modern .NET Core Frameworks: The Ultimate Guide
There are three main approaches to converting HTML toPDF in modern .NETCore platforms, each with its own strengths, weaknesses, and ideal use cases.
55. Implement a Singleton DBManager in ASP.NET Core and C#
This article talks about the singleton Design Pattern, why it is important
and then demonstrates how to build a singleton DBManager.
56. Understanding RISC-V Assembly Language by Building an Assembler in C#
RISC-V is an open-source instruction set architecture (ISA) that has gained popularity due to its simplicity and flexibility.
57. C# Excel Library In-Depth Comparison: Tested for 2026
Looking for the best C# Excel library? This guide compares 12 options with code examples, performance tests, costs, and deployment tradeoffs.
58. How to Use Assertion Scopes to Execute Multiple Assertions in C#
Fluent Assertions is a .NET library that provides use with a bunch of useful extension methods that allow us to test our C# code in a more natural way
59. Understanding Tasks, BackgroundWorkers, and Threads
In C# we have access to Tasks, Threads, or BackgroundWorkers. In this article, we will explore how each one operates at a high level.
60. Complex Refactoring With Roslyn Compilers
Let’s imagine the monolith project with an enormous code base that has been developed for a couple of decades (unbelievable, right?). This project is probably going to have a myriad of features and a considerable (hopefully!) number of automated tests covering the verification of our priceless features on multiple levels. All the way up the famous, or infamous, depending on who’re you gonna ask, testing pyramid from the unit foundation down below to the end-to-end peak high above.
61. C# OCR Libraries: The Definitive .NET Comparison for 2026
Looking for the best OCR library for C#? This guide compares open-source, commercial, and cloud OCR tools for .NET 8 applications.
62. Benchmarking C# Regular Expressions to Measure Performance
Regular expressions are powerful for pattern matching, but what about performance? Check out this article for details on C# regex performance from benchmarks!
63. The 10 Most Interesting C# Bugs We Found in Open Source in 2025
If you'd like to check whether your project has similar issues, now's the time to use a static analyzer.
64. GitHub Copilot (Gen-AI) is Helpful, But No Silver Bullet
Impressions from using GitHub Copilot Pro in professional ASP.NET 8 / C# Development.
65. Solving the All-pairs Shortest Paths Problem With the Floyd-Warshall Algorithm in C#
Implementation of Floyd-Warshall algorithm in C# with parallelism and vectorisation.
66. Five In-Demand Programming Languages In 2021
For a tech newbie striving to learn programming, it might be a bit complicated to figure out which technology to choose. Let me help you out.
67. The Ultimate C# .Net Testing Setup
Basically, we need to ability to write test classes and methods and have the base infrastructure for them.
68. How C# Lost Some of Its Original Elegance
A longtime C# developer reflects on how rapid language evolution, new keywords, and feature creep may be making C# less elegant.
69. How to Build The Flames Love Calculator Game in C#
Discover the true spark of your love with this fun and romantic game! Enter your name and the name of your partner, and let Flame Game do the rest.
70. What’s Wrong With GraphQL?
While GraphQL offers several benefits, there are some potential disadvantages and challenges to using it in C# to consider, before you decide to implement it.
71. xUnit: Managing Complex Test Parameters
xUnit support many ways of parameterizing tests, however none of the existing documentation I could find covered the use case of re-using and mixing parameter datasets across different tests. This article shows how this can be done with xUnit in Visual Studio.
72. Uploading Files to an SFTP Platform in C#.NET — Complete Guide
In this blog, I will explain the use case and practical implementation of a widely used open-source API for automated, secure file transfers.
73. The 30-Day .NET Challenge - Day 22: Use Array Pool
ArrayPool is a mechanism to recycle temporary buffers and optimize performance by reducing garbage collection cycles. It is part of the System.Buffers namespace
74. Develop Your Next eCommerce App With Xamarin.Forms

75. EKS Windows Node 30s Boot Now Possible - Start as Fast as Linux! (eks-windows-bootstrapper - Part 2)
I threw in some tricks I used to make our Windows EKS nodes start in the 90s rather than the 5 minutes a standard EKS Windows node takes.
76. The Definitive C# Word Library Comparison for 2026
Compare 12 .NET Word libraries for C# across features, PDF, mail merge, pricing, and platform support to choose the right DOCX API.
77. Serverless Functions with C#, Azure and AWS
This article will explain how to build serverless functions on the primary cloud providers services: Azure and AWS.
78. How to Implement API Versioning in ASP.NET Core
Learn how to implement versioning in ASP.NET Core Web APIs using NuGet and Swagger to maintain backward compatibility in .NET 8.
79. Why I Continue To Choose Delphi
I started with Delphi in 1997. It had all the productivity of Visual Basic, with the power of Visual C++. I knew I had the only language I would ever need.
80. Introducing Builder: Your Buddy in Test-Driven Development (TDD)
In this blog post, I introduced the builder pattern and its use in test-driven development. I also showed several ways to implement it.
81. Using Diagnostic Observers to Decouple Logging and Observability Code
Using DiagnosticSource and IObserver implementation to decouple logging code; improving the method adapter to properly handle event data binding.
82. Learn C# Programming Course for Free
Learn c# programming with examples. C# is an object-oriented programming language, and it is useful to build web, windows, mobile applications.
83. Entity Framework 8 – Partial Classes Tricks You Should Know About
This article demonstrates several techniques for using partial C# classes to address common issues in EF 8/ASP.NET8.
84. A Simple Safety Net For Async EventHandlers
Dealing with async EventHandlers in C# can be very problematic. async void is a pattern causes headaches with exceptions. Check out this simple solution!
85. What Programming Languages Should I Learn? A Multi-Language Approach To Career Development
Are you just taking your first step into web development, and you want to learn programming? Discover the benefits of learning more than one coding language.
86. The Top Backend Development Frameworks in 2023
Take a look at our annual breakdown of the top web backend frameworks in 2023. Leading the list is the clear leader NodeJS.
87. How to Find the “Routes” of All-Pairs Shortest Paths With the Floyd-Warshall Algorithm in C#
Implementation of Floyd-Warshall algorithm in C# with route tracking capability to reconstruct the shortest paths routes later.
88. C# Automation: Using .Net Core To Organize My Downloads Folder
Clean up your digital life with a cross-platform .Net bot. Organize files effortlessly by type and date.
89. QA Automation on vacation. How we developed a tool that creates test users for us
How SDG team developed a tool that automates the creation of "history-rich" test users.
90. Exploring the .NET Core and Python Union
Here's a simple solution for being able to call Python code from your C# applications!
91. GPT-5.3 Codex Reviewed My .NET Data Access Library and Missed the Architecture
I asked GPT-5.3 Codex to review a reusable .NET data access library. It scored 46/100—and exposed the limits of AI architectural reasoning.
92. Exploring RISC-V Assembly in the Web Browser with SharpRISCV
Discover SharpRISCV, an interactive web platform for learning and experimenting with RISC-V assembly in your browser.
93. Get Used to Building a .Net core MVC Application on Mac Visual Studio
Creating .Net MVC project using Visual Studio Mac
94. A Beginner's Guide to Regex Options in C#
Regular expressions are powerful for pattern matching, but what are the regex options in C# that we have access to? What do they do and how can we use them?
95. foreach Loops in C# – A Beginner's Guide
Throughout this article, I covered the basic syntax of foreach loops in C#, common mistakes to avoid, advanced techniques such as LINQ queries and lambdas
96. Blazor Render Mode – How To Avoid Dependency Injection Woes
Running into issues with your Blazor render mode? In my case, I didn't even know it was breaking my dependency injection AND my event handlers. My error though!
97. C# Collection Expressions and Collection Initializers
See code examples for C# collection initializers and collection expressions! Compare and contrast the readability of these different examples.
98. SharpRISCV Overview: A Browser-Based RISC-V Assembler for Seamless Learning and Exploration
RISC-V stands out as an open-source instruction set architecture that offers flexibility and adaptability.
99. Start Your C# Journey With This Guide
As new programmers, we all have to get started somewhere. If you're looking into C# and want to get learning, then this article focuses on all of the C# basics!
100. Exception Handling: Breaking Free From Exceptions, A New Way Forward
Exceptions and exception handling are a core part of C# and many other programming languages. But what If we didn't need to be throwing them? Let's see how!
101. Remote C# Programmer Wanted: Hot List of Companies That Are in Search of Remote Developers
These are the top companies hiring for C# remote jobs right now
102. Implementing the Blocked Floyd-Warshall Algorithm for Solving All-pairs Shortest Path Problem in C#
Implementation of cache-friendly Blocked Floyd-Warshall algorithm in C# (parallelism and vectorisation) coated in a basic theory behind caching and profiling.
103. 30-Day .NET Challenge - Day 17: What Is the Interlocked Class Tool?
The .Net provide a powerful tool called the “Interlocked” class for all atomic operations through which developers can reduce contention and improve the perform
104. Creating an RDL Report in .NET C# Code
Learn how to create an RDL report in code in no time!
105. 7 C# Tips for Beginners in Programming Language
You may not believe that learning a programming language is easier than you imagine. However, it is! And we want to help you to start the way in IT via C#.
106. Async/Await For Basic to Advanced C# Developers: 24 Essential Tips
Async/await in C# is a framework used for writing asynchronous C# code that is both readable and maintainable. These tips will help you to integrate async/await
107. Avoiding Memory Leaks with Weak Events in C#
Discover how weak events in C# can prevent memory leaks in event handling, improving application performance and memory management.
108. The Noonification: When Bitcoin Was Eleven Cents (9/26/2024)
9/26/2024: Top 5 stories on the HackerNoon homepage!
109. We need Roslyn for SQL!
Code review and other quality assurance methods are incredibly useful tools that can be facilitated by Roslyn which is not available for SQL, though it should.
110. A Guide to Troubleshooting Frequent Compile-Time Errors: C# for Beginners
The article demonstrates common compile-time errors from missing semicolons to type mismatches and solutions to fix those compile-time errors.
111. What You Didn’t Know About Task EventHandlers
If you're writing asynchronous code in C# and using EventHandlers, odds are you've had issues with exceptions. Task EventHandlers might be consideration!
112. Events in C#: An Easy-to-Understand Guide
In C#, an event is a mechanism that allows a class or object to notify other classes or objects when something happens.
113. How to Use Stackalloc: Day 28 of 30-Day .NET Challenge
Learn to enhance your performance with stackalloc in C#. Discover a better approach on Day 28 of our 30-Day .NET Challenge.
114. Understanding RISC-V Assembly Language by Building an Assembler in C# - Part 2
Learn how to develop a RISC-V assembler using the C# programming language.
115. How to Improve Your ADO .NET Performance - 10 Proven Ways - Part 1
This 10-part series delves into 10 powerful strategies that can significantly enhance the performance of ADO .NET code.
116. What You Need to Know to Use xUnit in ASP.NET Core
Learn how to effectively utilize xUnit for testing ASP.NET Core applications, ensuring product quality and reliability.
117. New .NET Library Does Deep Cloning Right
Fast deep cloning library for .NET 8+. Zero-config, works out of the box.
118. The HackerNoon Newsletter: Could the Soaring FTSE 100 Mean Its Time to Open a SIPP? (1/1/2026)
1/1/2026: Top 5 stories on the HackerNoon homepage!
119. This Developer Built a Custom Framework to Tame Legacy Tech and Speed Up Communication
WitCom is a versatile API that simplifies client-server communication with intuitive interfaces, robust security, and flexible serialization options.
120. Web Scraping: Is C# or JavaScript the Superior Choice?
C# and JavaScript each have their own advantages and disadvantages in web crawling. The choice of language depends on specific needs and development environment
121. Blockchain’s Bug Tax: The Neo and NBitcoin Mistakes a Linter Spotted
Static analysis with PVS-Studio flags real bugs in Neo and NBitcoin—null dereferences, bad format strings, operator precedence traps, and infinite recursion.
122. The 30-Day .NET Challenge - Day 20: Task vs. ValueTask
Heap allocations aren’t entirely bad but when an object is allocated on a heap it contributes to the garbage collection cycles which in turn reduces overall app
123. The 30-Day .NET Challenge - Day 25: Use Exception Filters
Learn to enhance your C# code’s readability by avoiding multiple catch blocks. Discover a better approach using Exception Filters on Day 25 of our 30-Day .NET
124. How to Use Enum in C#
It’s hard to find a developer who has never heard about enum. But do you use it correctly? Let’s find out.
125. Fun with Flags: How to Make Flags in C# with Enums and Bit Shifting
Vexillology and Bit Shifting are often not talked about together. Today though, I encode numbers like 52357729848 into country flags using enums in C#.
126. 5 Simplified Concepts For Beginners in C#
Considering C# as you get started on your programming journey? This article is focused on C# for beginners, and I've included 5 concepts from C# with code!
127. Using the Unit of Work Pattern in Clean Architecture for C#
Learn how the Unit of Work Pattern in C# complements Clean Architecture, providing efficient database transaction mgmt, improved code maintainability and more.
128. The 30-Day .NET Challenge - Day 18: AggressiveInlining Attribute
One of the techniques to improve application performance involves the use of the AggressiveInlining attribute. It influences the Just-In-Time (JIT) compiler’s
129. Beware of 'Using Declarion' in C# 8.0: A Real Example
Explore the unexpected behavior of the 'Using Declaration' feature in C# 8.0 and learn how to safely implement it in your code.
130. The 30-Day .NET Challenge—Day 19: Stack vs. Heap Allocation
The article demonstrates the idea of memory allocations to be used for vibrant and high-performance applications.
131. 4 Simple But Powerful Code Examples of Reflection in C#
Explore how reflection empowers developers to inspect, manipulate, and create code dynamically at runtime.
132. Escape Tutorial Hell - 7 C# Project Ideas For Beginners
Check out these 7 C# project ideas for beginners to help escape from tutorial hell! These C# project ideas will give you hands-on practice writing software.
133. How to Implement the Command Pattern in C#
Explore the power of the Command Pattern in C# as a behavioral design technique to enhance code organization and flexibility.
134. Integrating An SAP ABAP System With The Ethereum Mainnet [A Step-by-Step Guide]
You’ve likely heard of Ethereum in the context of cryptocurrency, but perhaps not so much in the context of enterprise software.
135. Rethinking Encapsulation: From Private to Public by Design
Access modifiers have long been seen as essential to safe and clean code. But they’re ultimately a low-level mechanism for expressing high-level ideas.
136. Bridging Software and Hardware: Lessons From Automating Test Systems With C#
In this post, I will share practical strategies for bridging software with hardware, what works, what fails, and why this space is very fascinating
137. 3 Beginner Tips You Need to Know for async await in C#
Learn essential tips for using async await in C# to write concurrent code more effectively.
138. Powerful Object Structures Using the Composite Pattern In C#
This comprehensive guide unveils the intricacies of implementing the Composite Pattern in C#, providing insights into composite, leaf, and component objects.
139. The Easy Way to Begin Test-Driven Development
I explain my Test-Driven Development (TDD) approach with an 'outside-in' mindset. Also, I introduce easyTdd, my TDD tool for generating test boilerplate code.
140. Model Validation in C#: Unit Testing
Explore robust model validation in C#, covering unit testing, BDD, and best practices for enhanced application reliability.
141. Faster Instantiation With DotNet Reflection Using ConstructorInfo
Using reflection in DotNet to create object instances? See the performance of ConstructorInfo compared to other methods provided by reflection in DotNet!
142. The 30-Day .NET Challenge Day 16: In-Memory Caching
Challenges are hard when the database resides in a remote machine or experiencing heavy load. The in-memory caching acts as a better implementation to avoid per
143. Another Solution To Sam Saffron’s Annoying INSERT Problem
I explain how Mighty, following Rob Conery’s Massive, implements a great answer to “that annoying INSERT problem” that Sam Saffron never mentioned.
144. Turning the Compiler Into Your Co-Architect
Polymorphic constructors aren’t built-in, but enums + static arrays can emulate them safely. This gives compile-time guarantees with scalability and performance
145. The HackerNoon Newsletter: What is Agentic Testing? (4/5/2026)
4/5/2026: Top 5 stories on the HackerNoon homepage!
Thank you for checking out the 145 most read blog posts about C Sharp on HackerNoon.
Visit the /Learn Repo to find the most read blog posts about any technology.
