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

138 lines
3.3 KiB
Markdown

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