|
|
|
|
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
|
|
|
|
|
```
|