You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PolyglotNotebooksStudy/Docs/多语言笔记.1.1.入门说明.md

3.3 KiB

Jupyter笔记 简单入门

使用 Jupyter NoteBook 形式,优点是代码执行和 Markdown 文档放在同一个文件中,并可以交替显示和分段执行代码。

显式声明使用 C# 语言

  • csharp
  • fsharp
  • pwsh
#!csharp

C# 中的引用

  • 导入程序文件

    可以导入多种文件,包括 .cs .csc .fc .js等语法为#!import /path/to/file

  • 引用本机 Dll 文件

    可以导入本机编译好的dll文件语法为 #!import /path/to/file

  • 引用 Nuget 包
  • 默认包源下可以导入nuget,当然也可以设置包源,语法为 #r 包名,可选版本号

C# 中的引用

  • 导入程序文件

    可以导入多种文件,包括 .cs .csc .fc .js等语法为#!import /path/to/file

#! import "../NotebookStudy.ConsoleApp/Persion.cs"
//单纯引用.cs文件不能直接使用解决方法待查找
var p = new Person()
{
    Id=1,
    Name="小张",
    Address="上海无名路1号",
    Age = 28
};
//在NoteBook中可以格式化显示(Notebook提供) C#对象:使用 display(对象); 如果在代码结尾的话,可以直接写 C#对象。
display(p);

//代码结尾的话,直接写 对象
p
var x = new {Name="xx",Agx=33};
display(x);
  • 引用本机 Dll 文件

    可以导入本机编译好的dll文件语法为 #!import /path/to/file

//如果找不到文件,需要先生成 NotebookStudy.ConsoleApp 项目

#r "../NotebookStudy.ConsoleApp/bin/Debug/net7.0/NotebookStudy.ConsoleApp.dll"

using NotebookStudy.ConsoleApp;

var personA= new Person()
{
    Id=2,
    Name="本山",
    Age=55
};

personA
  • 引用 Nuget 包
//安装库的最新版本
#r "nuget:newtonsoft.json"
var jsonObj = new {Id=2,Name="newtonsoft类库", Age=6};

//使用库
var jsonText = Newtonsoft.Json.JsonConvert.SerializeObject(jsonObj);
jsonText
//安装库的指定版本
#r "nuget:System.Text.Json,4.7.2"

//使用库
var jsonObj2 = new {Id=2,Name="System.Text.Json类库", Age=6};
var jsonText2 = System.Text.Json.JsonSerializer.Serialize(jsonObj2);
jsonText2
//安装最新的预览版库
#r "nuget:xunit,*-*"

using Xunit;
using Xunit.Abstractions;
using Xunit.Sdk;

public class UnitTest1
{
    [Fact]
    public void Test1()
    {
        Assert.True(true, "xxxx");
    }
}

Nuget 包源管理

//添加包源:可以添加多个
#i "nuget:https://api.nuget.org/v3/index.json"
//使用包源

#r "nuget:AutoFixture.Xunit2"
  • 本机包源 Nuget
//添加本地包源
#i "nuget:C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\"

//使用包源
#r "nuget:xunit"

  • 经过身份验证的Nuget包源

    不能直接引用验证包源,可以通过将源的 PAT 放入用户级 nuget.config 文件来访问经过身份验证的源

内建魔术命令

  • #!about 显示有关内核版本的信息
#!about
  • #!lsmagic 列出可用的魔术命令,包括可能已通过扩展安装的命令
#!lsmagic
  • #!time 显示执行时间
#!time
  • -h 参数 显示命令的帮助信息
#!time -h