اشتراک‌ها
Rider 2022.1 منتشر شد

Rider 2022.1 includes full Unreal Engine support, which converts Rider into a full-fledged IDE for game development, no matter what game engine you use. 

In v2022.1, Rider also supports a Beta version of the long-awaited remote development workflow. It allows you to connect to a remote machine running Rider’s backend from anywhere in the world.

In addition to these new features, this release also brings Docker Fast mode, updates to the main toolbar, and full-text search throughout the solution right from the Search Everywhere pop-up.

 
Rider 2022.1 منتشر شد
اشتراک‌ها
ReSharper Ultimate 2019.1 منتشر شد

Support for the recently released Visual Studio 2019 RTM, including but not limited to supporting the “async packages auto-load” API in Visual Studio 2019. 

ReSharper Ultimate 2019.1 منتشر شد
اشتراک‌ها
Breaking changesهای مهاجرت به دات نت 5
Breaking changes for migration from version 3.1 to 5.0

If you're migrating from version 3.1 of .NET Core, ASP.NET Core, or EF Core to version 5.0 of .NET, ASP.NET Core, or EF Core, the breaking changes listed in this article may affect your app
Breaking changesهای مهاجرت به دات نت 5
اشتراک‌ها
دوره کامل NET MAUI.

.NET MAUI Full Course : Cross Platform Development
.NET MAUI allows you to create multi-platform apps using one code base. That means you can develop for Android, iOS, macOS and of course Windows at the same time!
In this course I provide numerous examples on how to use all the tools MAUI provides. Check out the long table of contents below.  
 

دوره کامل NET MAUI.
مطالب دوره‌ها
حلقه های تکرار
در #F سه نوع حلقه تکرار وجود دارد. مفهوم حلقه‌های تکرار در #F مانند سایر زبان‌های برنامه نویسی است. در این جا فقط به syntax و نوع کد نویسی اشاره خواهیم داشت.
انواع حلقه‌های تکرار
  • حلقه تکرار for in
  • حلقه تکرار for to
  • حلقه تکرار while do

در ادامه به بررسی و پیاده سازی مثال برای هر سه حلقه می‌پردازیم 

#1 حلقه for ساده
let list1 = [ 1; 5; 100; 450; 788 ]
for i in list1 do
   printfn "%d" i
خروجی:
1
5
100
450
788
#2حلقه for با تعداد پرش دو( 1 تا 10 با تعداد پرش 2 )
  for i in 1 .. 2 .. 10 do
     printf "%d " i
خروجی
1 3 5 7 9
 #3 حلقه for با استفاده از محدوده کاراکتر ها
  for c in 'a' .. 'z' do
    printf "%c " c
خروجی
a b c d e f g h i j k l m n o p q r s t u v w x y z
#4 حلقه for به صورت شمارش معکوس
   for i in 10 .. -1 .. 1 do
        printf "%d " i
خروجی :
10 9 8 7 6 5 4 3 2 1
  #5حلقه for که شروع و اتمام محدوده آن به صورت عبارت است.

let beginning x y = x - 2*y
let ending x y = x + 2*y

  for i in (beginning x y) .. (ending x y) do
     printf "%d " i
خروجی مثال بالا با ورودی‌های 10 و 4 به صورت زیر خواهد بود
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#6 حلقه for to
for i = 1 to 10 do
    printf "%d " i
خروجی
1 2 3 4 5 6 7 8 9 10
#7 حلقه for to به صورت شمارش معکوس
for i = 10 downto 1 do
    printf "%d " i
خروجی
10 9 8 7 6 5 4 3 2 1
#8 حلقه for to  با استفاده از محدوده شروع و اتمام به صورت عبارت
 for i = (beginning x y) to (ending x y) do
     printf "%d " i
خروجی مثال بالا برای ورودی‌های 10 و 4 به صورت زیر است
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

#9 حلقه while do
ساختار کلی آن به صورت زیر است.
while test-expression do
   body-expression
#10مثال کامل از حلقه while do
open System
 
let main() =
    let password = "monkey"//شناسه برای مقدار رمز عبور
    let mutable guess = String.Empty// شناسه برای حدس رمز عبور
    let mutable attempts = 0//تعداد دفعات تست
 
    while password <> guess && attempts < 3 do// تا زمانی که رمز عبور با حدس آن برابر نیست و تعداد دفعات تکرار کمتر از سه است
        Console.Write("What's the password? ")//چاپ پیغام در خروجی
        attempts <- attempts + 1//مقدار دفعات یکی افزایش می‌یابد
        guess <- Console.ReadLine()// حدس رمز عبور از ورودی دریافت می‌شود
 
    if password = guess then// اگر رمز عبور با حدس آن یکی بود
        Console.WriteLine("You got the password right!")// پیغام موفقیت
    else
        Console.WriteLine("You didn't guess the password")//پیغام عدم موفقیت
 
    Console.ReadKey(true) |> ignore//منتظر ورودی برای خروج از برنامه
تنها نکته قابل ذکر در مثال بالا استفاده از mutable keyword برای تعریف شناسه attempts است. (طبق توضیحات فصل قبل) به دلیل اینکه تعداد دفعات تکرار برای ما مهم است و نمی‌خواهیم در هر محدوده این مقدار به حالت قبلی خود بازگردد از mutable استفاده کردیم.