自学内容网 自学内容网

VS Code配置C#及F#编译环境,在jupyter notebook中运行C#及F#代码

前提:安装Visual Studio或.NET SDK

Visual Studio 下载地址:Visual Studio 2022 IDE - 适用于软件开发人员的编程工具

.NET SDK 下载地址:在 Windows 上安装 .NET - .NET | Microsoft Learn

1.新建项目

先查看.NET SDK是否安装成功:

dotnet --version

新建C#项目: 

dotnet new console

新建F#项目:

dotnet new console -lang "F#" -o GGBoy

 编写及运行新建项目,运行后生成bin文件夹:

code .
dotnet run

 2.安装插件:.NET Extension Pack、C# Dev Kit

 3.项目中添加单元测试框架和测试适配器

终端中输入命令,在项目目录下使用命令添加 NUnit 和 NUnit 测试适配器的依赖。

dotnet add package NUnit
dotnet add package NUnit3TestAdapter

4.单独脚本测试及运行项目

测试项目:

dotnet test

测试脚本编写格式:

using NUnit.Framework;  
using System.Linq;  
  
[TestFixture]  
public class FibonacciTests  
{  
    [Test]  
    public void TestFibonacciStream()  
    {  
        Fibonacci fibonacci = new Fibonacci();  
        var fibSequence = fibonacci.Stream().Take(10).ToList();  
        var expectedSequence = new int[] { 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 };  
        Assert.That(fibSequence, Is.EqualTo(expectedSequence));  
    }  
}

 在Main类所在的文件中引入其他CS文件:

// 项目主文件,内部有Main类
public class GGBoy  
{  
    public static void Main(string[] args)  
    {  
        // 创建 Fibonacci 类的实例  
        Fibonacci fibonacci = new Fibonacci();  
          
        // 调用 Fibonacci 类的 Stream 方法并打印前10个斐波那契数  
        Console.WriteLine("肥波那契数列前10个数字为:");  
        foreach (var fib in fibonacci.Stream().Take(10))  
        {  
            Console.WriteLine(fib);  
        }  
        Console.WriteLine("GGBoy!");  
    }  
}
// Fibinacci.cs 文件,与主文件在同一个文件夹
using System;  
using System.Collections.Generic;  
using System.Linq; 

public class Fibonacci  
{  
    private int last = 0, next = 1;  
  
    public IEnumerable<int> Stream()  
    {  
        while (true)  
        {  
            int oldLast = last;  
            last = next;  
            next = oldLast + next;  
            yield return oldLast;  
        }  
    }  
}

 输入命令运行项目:

dotnet run
> dotnet run
肥波那契数列前10个数字为:
0
1
1
2
3
5
8
13
21
34
GGBoy!

5.使用 jupyter notebook 运行C#、F#代码

 在VS Code中使用jupyter notebook更方便进行学习,新建一个 .ipynb 文件,选择 .NET Interactive 内核,在右下方选择语言

// 使用F#生成10个正态分布随机数
open System  
  
let random = new Random()  
  
let boxMullerTransformation () =  
    let u1 = random.NextDouble()  
    let u2 = random.NextDouble()  
    let z0 = sqrt (-2.0 * log u1) * cos (2.0 * Math.PI * u2)  
    z0 // 返回一个正态分布的随机数  
  
// 生成10个正态分布的随机数  
for i = 1 to 10 do  
    let z = boxMullerTransformation()  
    printfn "Generated normal random number: %f" z

 

// C# Lambda 表达式
int[] numbers = { 2, 3, 4, 5 };
var maximumSquare = numbers.Max(x => x * x);
Console.WriteLine(maximumSquare);

原文地址:https://blog.csdn.net/m0_73500130/article/details/139016472

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!