From e2be1a3a175ded45a1b0922607d987a868367a0d Mon Sep 17 00:00:00 2001 From: Bader Bamari Date: Sun, 31 Oct 2021 21:37:33 +0300 Subject: Update C Sharp markdown. (#4260) --- csharp.html.markdown | 47 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/csharp.html.markdown b/csharp.html.markdown index b965c2d4..ddb0c62a 100644 --- a/csharp.html.markdown +++ b/csharp.html.markdown @@ -12,9 +12,9 @@ contributors: filename: LearnCSharp.cs --- -C# is an elegant and type-safe object-oriented language that enables developers to build a variety of secure and robust applications that run on the .NET Framework. +C# is an elegant and type-safe object-oriented language that enables developers to build a variety of secure and robust applications that run on the cross-platform .NET framework. -[Read more here.](https://docs.microsoft.com/dotnet/csharp/getting-started/introduction-to-the-csharp-language-and-the-net-framework) +[Read more here.](https://docs.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/) ```c# // Single-line comments start with // @@ -29,7 +29,7 @@ Multi-line comments look like this /// /// This is some parameter documentation for firstParam /// Information on the returned value of a function -public void MethodOrClassOrOtherWithParsableHelp(string firstParam) {} +public void MethodOrClassOrOtherWithParsableHelp(string firstParam) { } // Specify the namespaces this source code will be using // The namespaces below are all part of the standard .NET Framework Class Library @@ -48,6 +48,10 @@ using System.Data.Entity; // Namespaces define scope to organize code into "packages" or "modules" // Using this code from another source file: using Learning.CSharp; + +// You can also do this in C# 10, it is called file-scoped namespaces. +// namespace Learning.CSharp; + namespace Learning.CSharp { // Each .cs file should at least contain a class with the same name as the file. @@ -341,8 +345,17 @@ on a new line! ""Wow!"", the masses cried"; // Convert Integer To String // Convert class has a number of methods to facilitate conversions + + // String to int + + // Better + bool result = int.TryParse(string, out var integer) + int.Parse(string); + + // Not recommended Convert.ToString(123); - // or + + // Int to string tryInt.ToString(); // Casting @@ -375,6 +388,9 @@ on a new line! ""Wow!"", the masses cried"; Console.Read(); } // End main method + // Available in C# 9 and later, this is basically a syntactic sugar for a class. Records are immutable*. + public record ARecord(string Csharp); + // CONSOLE ENTRY - A console application must have a main method as an entry point public static void Main(string[] args) { @@ -1299,16 +1315,27 @@ namespace Csharp7 ``` ## Topics Not Covered +✨ New, 👍 Old, 🎈 LTS, 🔥 Cross-platform, 🎁 Windows-only * Attributes - * async/await + + * Asynchronous Programming + * Web Development - * ASP.NET MVC & WebApi (new) - * ASP.NET Web Forms (old) - * WebMatrix (tool) + * ASP.NET Core ✨ + * Desktop Development - * Windows Presentation Foundation (WPF) (new) - * Winforms (old) + * Windows Presentation Foundation 👍 🎈 🎁 + * Universal Windows Platform ✨ 🎁 + * Uno Platform 🔥 ✨ + * WinForms 👍 🎈 🎁 + * Avalonia 🔥 ✨ + * WinUI ✨ 🎁 + +* Cross-platform Development + * Xamarin.Forms 👍 + * MAUI ✨ + ## Further Reading -- cgit v1.2.3