Jupyter笔记 简单入门 ============================== 使用 Jupyter NoteBook 形式,优点是代码执行和 Markdown 文档放在同一个文件中,并可以交替显示和分段执行代码。 ## 显式声明使用 C# 语言 + csharp + fsharp + pwsh ```csharp #!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 ` ```csharp #! import "../NotebookStudy.ConsoleApp/Persion.cs" ``` ```csharp //单纯引用.cs文件,不能直接使用,解决方法待查找 var p = new Person() { Id=1, Name="小张", Address="上海无名路1号", Age = 28 }; //在NoteBook中,可以格式化显示(Notebook提供) C#对象:使用 display(对象); 如果在代码结尾的话,可以直接写 C#对象。 display(p); //代码结尾的话,直接写 对象 p ``` ```csharp var x = new {Name="xx",Agx=33}; display(x); ``` + 引用本机 Dll 文件 > 可以导入本机编译好的dll文件,语法为 `#!import /path/to/file` ```csharp //如果找不到文件,需要先生成 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 包 ```csharp //安装库的最新版本 #r "nuget:newtonsoft.json" var jsonObj = new {Id=2,Name="newtonsoft类库", Age=6}; //使用库 var jsonText = Newtonsoft.Json.JsonConvert.SerializeObject(jsonObj); jsonText ``` ```csharp //安装库的指定版本 #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 ``` ```csharp //安装最新的预览版库 #r "nuget:xunit,*-*" using Xunit; using Xunit.Abstractions; using Xunit.Sdk; public class UnitTest1 { [Fact] public void Test1() { Assert.True(true, "xxxx"); } } ``` ## Nuget 包源管理 + 在线包源 > 默认包源:https://api.nuget.org/v3/index.json 使用默认包源的话,可以不添加包源引用。当然也可以添加。 ```csharp //添加包源:可以添加多个 #i "nuget:https://api.nuget.org/v3/index.json" ``` ```csharp //使用包源 #r "nuget:AutoFixture.Xunit2" ``` + 本机包源 Nuget ```csharp //添加本地包源 #i "nuget:C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" //使用包源 #r "nuget:xunit" ``` + 经过身份验证的Nuget包源 > 不能直接引用验证包源,可以通过将源的 PAT 放入用户级 nuget.config 文件来访问经过身份验证的源 ## 内建魔术命令 + #!about 显示有关内核版本的信息 ```csharp #!about ``` + #!lsmagic 列出可用的魔术命令,包括可能已通过扩展安装的命令 ```csharp #!lsmagic ``` + #!time 显示执行时间 ```csharp #!time ``` + -h 参数 显示命令的帮助信息 ```csharp #!time -h ```