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);
  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值