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)!