{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "Jupyter NoteBook 简单入门\n", "==============================\n", "\n", "使用 Jupyter NoteBook 形式,优点是代码执行和 Markdown 文档放在同一个文件中,并可以交替显示和分段执行代码。" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "## 显式声明使用 C# 语言\n", "+ csharp\n", "+ fsharp\n", "+ pwsh" ] }, { "cell_type": "code", "execution_count": 34, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [], "source": [ "#!csharp" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "## C# 中的引用\n", "+ 导入程序文件\n", " > 可以导入多种文件,包括 .cs .csc .fc .js等,语法为` #!import /path/to/file ` \n", "+ 引用本机 Dll 文件\n", " > 可以导入本机编译好的dll文件,语法为 `#!import /path/to/file`\n", "+ 引用 Nuget 包\n", "+ > 默认包源下,可以导入nuget,当然也可以设置包源,语法为 `#r 包名,可选版本号`" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "## C# 中的引用\n", "+ 导入程序文件\n", " > 可以导入多种文件,包括 .cs .csc .fc .js等,语法为` #!import /path/to/file ` " ] }, { "cell_type": "code", "execution_count": 63, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/html": [ "<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>MultiThreadingStudy.Core.Person</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Id</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>Name</td><td>小张</td></tr><tr><td>Address</td><td>上海无名路1号</td></tr><tr><td>Age</td><td><div class=\"dni-plaintext\"><pre>28</pre></div></td></tr></tbody></table></div></details><style>\r\n", ".dni-code-hint {\r\n", " font-style: italic;\r\n", " overflow: hidden;\r\n", " white-space: nowrap;\r\n", "}\r\n", ".dni-treeview {\r\n", " white-space: nowrap;\r\n", "}\r\n", ".dni-treeview td {\r\n", " vertical-align: top;\r\n", " text-align: start;\r\n", "}\r\n", "details.dni-treeview {\r\n", " padding-left: 1em;\r\n", "}\r\n", "table td {\r\n", " text-align: start;\r\n", "}\r\n", "table tr { \r\n", " vertical-align: top; \r\n", " margin: 0em 0px;\r\n", "}\r\n", "table tr td pre \r\n", "{ \r\n", " vertical-align: top !important; \r\n", " margin: 0em 0px !important;\r\n", "} \r\n", "table th {\r\n", " text-align: start;\r\n", "}\r\n", "</style>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>MultiThreadingStudy.Core.Person</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Id</td><td><div class=\"dni-plaintext\"><pre>1</pre></div></td></tr><tr><td>Name</td><td>小张</td></tr><tr><td>Address</td><td>上海无名路1号</td></tr><tr><td>Age</td><td><div class=\"dni-plaintext\"><pre>28</pre></div></td></tr></tbody></table></div></details><style>\r\n", ".dni-code-hint {\r\n", " font-style: italic;\r\n", " overflow: hidden;\r\n", " white-space: nowrap;\r\n", "}\r\n", ".dni-treeview {\r\n", " white-space: nowrap;\r\n", "}\r\n", ".dni-treeview td {\r\n", " vertical-align: top;\r\n", " text-align: start;\r\n", "}\r\n", "details.dni-treeview {\r\n", " padding-left: 1em;\r\n", "}\r\n", "table td {\r\n", " text-align: start;\r\n", "}\r\n", "table tr { \r\n", " vertical-align: top; \r\n", " margin: 0em 0px;\r\n", "}\r\n", "table tr td pre \r\n", "{ \r\n", " vertical-align: top !important; \r\n", " margin: 0em 0px !important;\r\n", "} \r\n", "table th {\r\n", " text-align: start;\r\n", "}\r\n", "</style>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#! import \"..\\MultiThreadingStudy.Core\\Person.cs\"\n", "\n", "Person p = new Person()\n", "{\n", " Id=1,\n", " Name=\"小张\",\n", " Address=\"上海无名路1号\",\n", " Age = 28\n", "};\n", "//在NoteBook中,可以格式化显示(Notebook提供) C#对象:使用 display(对象); 如果在代码结尾的话,可以直接写 C#对象。\n", "display(p);\n", "\n", "//代码结尾的话,直接写 对象\n", "p" ] }, { "cell_type": "code", "execution_count": 47, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/html": [ "<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>{ Name = xx, Agx = 33 }</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Name</td><td>xx</td></tr><tr><td>Agx</td><td><div class=\"dni-plaintext\"><pre>33</pre></div></td></tr></tbody></table></div></details><style>\r\n", ".dni-code-hint {\r\n", " font-style: italic;\r\n", " overflow: hidden;\r\n", " white-space: nowrap;\r\n", "}\r\n", ".dni-treeview {\r\n", " white-space: nowrap;\r\n", "}\r\n", ".dni-treeview td {\r\n", " vertical-align: top;\r\n", " text-align: start;\r\n", "}\r\n", "details.dni-treeview {\r\n", " padding-left: 1em;\r\n", "}\r\n", "table td {\r\n", " text-align: start;\r\n", "}\r\n", "table tr { \r\n", " vertical-align: top; \r\n", " margin: 0em 0px;\r\n", "}\r\n", "table tr td pre \r\n", "{ \r\n", " vertical-align: top !important; \r\n", " margin: 0em 0px !important;\r\n", "} \r\n", "table th {\r\n", " text-align: start;\r\n", "}\r\n", "</style>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "var x = new {Name=\"xx\",Agx=33};\n", "display(x);" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "+ 引用本机 Dll 文件\n", " > 可以导入本机编译好的dll文件,语法为 `#!import /path/to/file`" ] }, { "cell_type": "code", "execution_count": 67, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/html": [ "<details open=\"open\" class=\"dni-treeview\"><summary><span class=\"dni-code-hint\"><code>MultiThreadingStudy.Core.Person</code></span></summary><div><table><thead><tr></tr></thead><tbody><tr><td>Id</td><td><div class=\"dni-plaintext\"><pre>2</pre></div></td></tr><tr><td>Name</td><td>本山</td></tr><tr><td>Address</td><td><div class=\"dni-plaintext\"><pre><null></pre></div></td></tr><tr><td>Age</td><td><div class=\"dni-plaintext\"><pre>55</pre></div></td></tr></tbody></table></div></details><style>\r\n", ".dni-code-hint {\r\n", " font-style: italic;\r\n", " overflow: hidden;\r\n", " white-space: nowrap;\r\n", "}\r\n", ".dni-treeview {\r\n", " white-space: nowrap;\r\n", "}\r\n", ".dni-treeview td {\r\n", " vertical-align: top;\r\n", " text-align: start;\r\n", "}\r\n", "details.dni-treeview {\r\n", " padding-left: 1em;\r\n", "}\r\n", "table td {\r\n", " text-align: start;\r\n", "}\r\n", "table tr { \r\n", " vertical-align: top; \r\n", " margin: 0em 0px;\r\n", "}\r\n", "table tr td pre \r\n", "{ \r\n", " vertical-align: top !important; \r\n", " margin: 0em 0px !important;\r\n", "} \r\n", "table th {\r\n", " text-align: start;\r\n", "}\r\n", "</style>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#r \"..\\MultiThreadingStudy.Core\\bin\\Debug\\netstandard2.1\\MultiThreadingStudy.Core.dll\"\n", "\n", "using MultiThreadingStudy.Core;\n", "\n", "MultiThreadingStudy.Core.Person personA= new MultiThreadingStudy.Core.Person()\n", "{\n", " Id=2,\n", " Name=\"本山\",\n", " Age=55\n", "};\n", "\n", "personA" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "+ 引用 Nuget 包" ] }, { "cell_type": "code", "execution_count": 136, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/html": [ "<div><div></div><div></div><div><strong>Installed Packages</strong><ul><li><span>newtonsoft.json, 13.0.3</span></li></ul></div></div>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "{\"Id\":2,\"Name\":\"newtonsoft类库\",\"Age\":6}" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "//安装库的最新版本\n", "#r \"nuget:newtonsoft.json\"\n", "var jsonObj = new {Id=2,Name=\"newtonsoft类库\", Age=6};\n", "\n", "//使用库\n", "var jsonText = Newtonsoft.Json.JsonConvert.SerializeObject(jsonObj);\n", "jsonText" ] }, { "cell_type": "code", "execution_count": 137, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/html": [ "<div><div></div><div></div><div><strong>Installed Packages</strong><ul><li><span>System.Text.Json, 4.7.2</span></li></ul></div></div>" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "{\"Id\":2,\"Name\":\"System.Text.Json\\u7C7B\\u5E93\",\"Age\":6}" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "//安装库的指定版本\n", "#r \"nuget:System.Text.Json,4.7.2\"\n", "\n", "//使用库\n", "var jsonObj2 = new {Id=2,Name=\"System.Text.Json类库\", Age=6};\n", "var jsonText2 = System.Text.Json.JsonSerializer.Serialize(jsonObj2);\n", "jsonText2" ] }, { "cell_type": "code", "execution_count": 163, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/html": [ "<div><div><strong>Restore sources</strong><ul><li><span>C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\</span></li></ul></div><div></div><div><strong>Installed Packages</strong><ul><li><span>xUnit, 2.4.2</span></li></ul></div></div>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "//安装最新的预览版库\n", "#r \"nuget:xunit,*-*\"\n", "\n", "using Xunit;\n", "using Xunit.Abstractions;\n", "using Xunit.Sdk;\n", "\n", "public class UnitTest1\n", "{\n", " [Fact]\n", " public void Test1()\n", " {\n", " Assert.True(true, \"xxxx\");\n", " }\n", "}" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "## Nuget 包源管理\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "+ 默认 Nuget 包源\n", " > 默认包源可能是:https://api.nuget.org/v3/index.json 使用默认包源的话,可以不添加包源引用。当然也可以添加。" ] }, { "cell_type": "code", "execution_count": 165, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/html": [ "<div><div><strong>Restore sources</strong><ul><li><span>C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\</span></li></ul></div><div></div><div><strong>Installed Packages</strong><ul><li><span>AutoFixture.Xunit2, 4.18.0</span></li></ul></div></div>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#r \"nuget:AutoFixture.Xunit2\"" ] }, { "cell_type": "code", "execution_count": 167, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/html": [ "<div><div><strong>Restore sources</strong><ul><li><span>C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\</span></li><li><span>https://api.nuget.org/v3/index.json</span></li></ul></div><div></div><div><strong>Installed Packages</strong><ul><li><span>AutoFixture.Xunit2, 4.18.0</span></li></ul></div></div>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "//也可以指定默认包源\n", "#i \"nuget:https://api.nuget.org/v3/index.json\"\n", "\n", "#r \"nuget:AutoFixture.Xunit2\"" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "+ 本机包源 Nuget" ] }, { "cell_type": "code", "execution_count": 158, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/html": [ "<div><div><strong>Restore sources</strong><ul><li><span>C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\</span></li></ul></div><div></div><div><strong>Installed Packages</strong><ul><li><span>xUnit, 2.4.2</span></li></ul></div></div>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "//添加本地包源\n", "#i \"nuget:C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\\"\n", "\n", "//使用包源\n", "#r \"nuget:xunit\"\n" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "+ 经过身份验证的Nuget包源\n", " > 不能直接引用验证包源,可以通过将源的 PAT 放入用户级 nuget.config 文件来访问经过身份验证的源" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "## 内建魔术命令" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "+ #!about 显示有关内核版本的信息" ] }, { "cell_type": "code", "execution_count": 84, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/html": [ "<table><tbody><tr><td><img src=\"data:image/png;base64, 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\" width=\"125em\"></img></td><td style=\"line-height:.8em\"><p style=\"font-size:1.5em\"><b>.NET Interactive</b></p><p>© 2020 Microsoft Corporation</p><p><b>Version: </b>1.0.415202+b72e199d0d854bd532a8103ce626a5aab4a71c07</p><p><b>Library version: </b>1.0.0-beta.23152.2+b72e199d0d854bd532a8103ce626a5aab4a71c07</p><p><b>Build date: </b>2023-03-08T16:15:05.1062967Z</p><p><a href=\"https://github.com/dotnet/interactive\">https://github.com/dotnet/interactive</a></p></td></tr></tbody></table>" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#!about" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "+ #!lsmagic 列出可用的魔术命令,包括可能已通过扩展安装的命令" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [], "source": [ "#!lsmagic" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "+ #!time 显示执行时间" ] }, { "cell_type": "code", "execution_count": 92, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "data": { "text/plain": [ "Wall time: 0.3225ms" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#!time" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" } }, "source": [ "+ -h 参数 显示命令的帮助信息" ] }, { "cell_type": "code", "execution_count": 104, "metadata": { "dotnet_interactive": { "language": "csharp" }, "polyglot_notebook": { "kernelName": "csharp" }, "vscode": { "languageId": "polyglot-notebook" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Description:\r\n", " Time the execution of the following code in the submission.\r\n", "\r\n", "Usage:\r\n", " #!time [options]\r\n", "\r\n", "Options:\r\n", " -?, -h, --help Show help and usage information\r\n", "\r\n", "\r\n" ] } ], "source": [ "#!time -h" ] } ], "metadata": { "kernelspec": { "display_name": ".NET (C#)", "language": "C#", "name": ".net-csharp" }, "polyglot_notebook": { "kernelInfo": { "defaultKernelName": "csharp", "items": [ { "aliases": [ "c#", "C#" ], "languageName": "C#", "name": "csharp" }, { "aliases": [ "frontend" ], "languageName": null, "name": "vscode" }, { "aliases": [ "js" ], "languageName": "JavaScript", "name": "javascript" }, { "aliases": [], "name": "webview" }, { "aliases": [], "languageName": null, "name": ".NET" } ] } } }, "nbformat": 4, "nbformat_minor": 2 }