Khác biệt giữa các bản “C Sharp (ngôn ngữ lập trình)”

n
replaced: ( → (, ) → ), . → . (13), uơng → ương (3) using AWB
n (replaced: ( → (, ) → ), . → . (13), uơng → ương (3) using AWB)
Thẻ: Thêm một hay nhiều mục vào danh sách
 
{{Về|ngôn ngữ lập trình C#|nốt nhạc|Đô thăng}}
{{Infobox programming language
 
== Ứng dụng của C# ==
* Phát triển web (ASP.NET MVC, ASP.NET core, Web API, Blazor ..)
*Phát triển desktop app (Winform, WPF, UWP, Mono, Uno,MAUI...)
*Phát triển game ([[:en:Unity_Unity (game_enginegame engine)|Unity]], Monogame, Godot, Stride, CryEngine..)
*Phát triển mobile app, IOS native, Android native (Xamarin)
*Phát triển đám mây ([https://azure.microsoft.com/en-us/ Azure],AWS...)
*Phát triển thực tế ảo (VR) và thực tế tăng cường(AR) (HoloLens,CryEngine,Unity, Oculus quest..)
*Học máy và trí tuệ nhân tạo ([https://dotnet.microsoft.com/apps/machinelearning-ai/ml-dotnet ML.Net], TensorFlow, csiSharp..)
*Blockchain ([https://www.stratisplatform.com/ NEO, Stratis] )
*Microservices and containers
*Internet of thing (IoT)
* C# là ngôn ngữ đơn giản, mạnh mẽ
**C# được dựng trên nền tảng C++ và Java, ảnh hưởng bởi Delphi, VisualBasic nên ngôn ngữ C# được thừa hưởng các ưu điểm vào loại bỏ các yếu điểm của các ngôn ngữ trên, vì vậy nó khá đơn giản, đồng thời loại bỏ các cú pháp dư thừa và thêm vào đó các cú pháp cải tiến hơn
**C# là [[Ngôn ngữ lập trình bậc cao#:~:text=Trong%20khoa%20h%E1%BB%8Dc%20m%C3%A1y%20t%C3%ADnh khoa học máy tính,chi%20ti%E1%BA%BFt%20c%E1%BB%A7a%20m%C3%A1y%20t%C3%ADnh tiết của máy tính.|ngôn ngữ lâp trình bậc cao]], [[đa nền tảng]] vì vậy nó '''dễ dàng tiếp cận''' và '''phù hợp cho người mới bắt đầu học''', ví dụ câu lệnh kinh điển dành cho người mới băt đầu hoc là in ra dòng chữ "Hello world", với C# ta chỉ cẩn 1 câu lệnh: '''System.Console.WriteLine("Hello world");'''
*C# là ngôn ngữ đa năng và hiện đại
**C# phù hợp cho việc phát triển trong thời đại 4.0, bao gồm việc phát triển web, mobile app, game, học máy và trí tuệ nhân tạo, phát triển đám mây, IoT, blockchain, microservices...
*C# là một ngôn ngữ lập trình hướng đối tượng đồng thời hỗ trợ lâp trình chức năng
**C# hỗ trợ mạnh mẽ cho phương pháp lâp trình hướng đối tượng, ngoài ra C# còn hỗ trợ các phuơngphương pháp lập trình chức năng thông qua các biểu thức lamba, khớp mẫu, functions, các thuộc tính bất biến.
*C# là ngôn ngữ gõ tĩnh, định kiểu mạnh, hỗ trợ gõ động.
**C# được gõ tĩnh nên nó mang đầy đủ các ưu việt của phuơngphương pháp gõ tĩnh như bảo đảm an toàn kiểu, tự động phân tích và nhận biết lỗi cú pháp ngay trong quá trình viết mã...
**Ngoài ra khi sử dụng C# kết hợp với IDE Visual Studio, C# được hỗ trợ gợi ý code bởi [https://visualstudio.microsoft.com/services/intellicode/ Visual Studio IntelliCode] sử dụng trí tuệ nhân tạo giúp cho việc viết code trở nên nhanh chóng và dễ dàng hơn
*C# là một ngôn ngữ ít [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/ từ khóa]
**C# có khoảng hơn 80 từ khóa
**Theo [https://www.tiobe.com/tiobe-index/ TIOBE Index], tính đến tháng 10/2020, C# là ngôn ngữ phổ biến thứ 5 thế giới.
**Theo [http://pypl.github.io/PYPL.html PYPL], tính đến tháng 10/2020, C# là ngôn ngữ được cộng đồng quan tâm và chia sẻ nhiều thứ 4 thế giới.
*C# kết hợp chặt chẽ với nền tảng [https://dotnet.microsoft.com/ .NET]- một khung nền tảng rất mạnh của Microsoft.
*Ngoài ra C# còn có những ưu điểm:
**[https://github.com/dotnet/csharplang C# là ngôn ngữ lập trình mã nguồn mở],vì vậy C# là miễn phí với tất cả mọi người, đồng thời mọi người đều có thể cùng tham gia phát triển, đề xuất thiết kế ngôn ngữ C#
**C# được phát triển và cải tiến không ngừng với tần suất 1 phiên bản/ 1 năm, đáp ứng các mong muốn cải thiện, cải tiến cho phù hợp với nhu cầu công nghệ của các nhà phát triển.
**C# có [https://docs.microsoft.com/en-us/dotnet/csharp/ tài liệu tham khảo] và hướng dẫn vô cùng phong phú và chất lượng, đồng thời có các buổi hội thảo giới thiệu tính năng mới và định hướng phát triển ngôn ngữ trong tương lai.
**C# và .NET được đánh giá là có design tốt, vì vậy cú pháp và logic rất nhất quán, mã nguồn C# dễ đọc và mở rộng.
**C# được thiết kế và phát triển bởi Microsoft nên rất được Microsoft quan tâm và hỗ trợ.
 
* Mở rộng các biến biểu thức trong trình khởi tạo.
*Đính kèm attribute vào trường sao lưu cho các thuộc tính được triiển khai tự động.
[https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-8 C# 8.0]<ref name=":0" group="19" /> Hỗ trợ trong .NET Core 3.0 và .NET Standard 2.1 trở lên
* Kiểu tham chiếu nullable (Nullable reference types)
*Hỗ trợ biến thành viên chỉ đọc cho struct (Readonly Members)
*Hàm cục bộ tĩnh (Static local functions).
*Mở rộng pattern matching cho biểu thức swich expressions, property patterns, tuple pattern, positional pattern (More patterns in more places)
*Phạm vi và chỉ số ( Ranges and indices)
*Cải thiện khai báo từ khóa using (Using declarations)
*Toán tử kiểm tra và gán khi biến là null (Null- coalescing asignment)
*Stackalloc in nested expressions
*Enhancement of interpolated verbatim strings
[https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-9 C# 9.0]<ref name=":0" group="19" /> Hỗ trợ trong .NET 5.0 trở lên
* Bản ghi (Record)
*Thuộc tính bất biến (Init only setters
 
==.NET Core ==
.NET Core là một nền tảng phát triển đa mục đích, mã nguồn mở được duy trì bởi Microsoft và cộng đồng .NET trên GitHub. Đó là nền tảng chéo (hỗ trợ Windows, macOS và Linux) và có thể được sử dụng để xây dựng các ứng dụng thiết bị, đám mây và IoT.<br />
 
==.NET 5 ==
Bắt đầu từ .NET 5 là nền tảng hợp nhất giữa các phiên bản .NET, tập trung vào hiệu suất và đa nền tảng. .NET kế thừa từ các ưu việt của các nền tảng trước đó (.NET Framwork, .NET core, .NET Standard, Mono, Xamarin) để quản lý tập trung 1 framework với một hệ thống API hợp nhất cho các nền tảng phát triển của .NET
 
== Ví dụ đơn giản Hello World ==
<code>Console</code> là một lớp <code lang="csharp">static</code> ở namespace <code>System</code>. Lớp này cung cấp các interface chuẩn cho việc nhập, xuất và báo lỗi của chương trình C#. Chương trình của chúng ta gọi hàm <code>WriteLine</code> và in ra dòng "Hello World!"
 
Thông thường mặc định khi tạo chuơngchương trình C#, các IDE sẽ tạo các code mẫu sẵn, chúng ta thực sự chỉ cần viết 1 dòng lệnh duy nhất là ''Console.WriteLine("Hello World!");'' để in ra dòng chữ ''Hello World!''
 
== Ghi chú ==