快速认识 C# 类型系统
(先决条件:知道 C# 怎么声明数字类型和字符串变量,会调用如 Console.WriteLine() 等方法)
前言:对象的描述在程序设计中,我们需要给对象建立模型。描述一个对象(也可以理解为实体),我们通常用属性去表示它,比如,我要描述某个叫张三的学生,可以将他表示成:
123456名字:张三年龄:20性别:男身高:170cm体重:60kg体育爱好:打篮球
从语义上来看,我们已经通过上述描述,使用 6 个属性,完成了对“张三”这个对象的建模。
在 C# 中,这个张三可以通过创建一个匿名对象来创建:
1var student1 = new { Name = "张三", Age = 20, Gender = "男", Height = 170, Weight = 60, Hobby = "打篮球" };
这是一个包含初始化部的声明,等号右边的匿名对象通过关键字 new 和对象初始化器 { 属性名1 = 值1, 属性名2 = 值2, ... } 来创建,然后赋值给 student1 变 ...
BMG 开发笔记
这是我的一篇 BMG (公共汽车线路图生成器,Bus Map Generator) 的开发笔记,记录了开发过程中认为值得记录的知识点。组织结构如下:
前端部分
使用了 Fluent.Ribbon 的 MainWindow.xaml 的组织方式
C# 部分
JSON 数据在 C# 的加载和保存
Svg.Skia 和 SkiaSharp 的使用
Python 工具部分
Python 工具的组织
Python 工具转可执行程序
杂项部分
资源的复制到输出目录
前端部分使用了 Fluent.Ribbon 的 MainWindow.xaml 的组织方式最外层容器当然是窗体对象。标签内定义的属性通常包括:
一般属性:如 Title、Width、Height 这些传入数字或者直接表示属性的字符串的;
命名空间前缀声明:如 xmlns、x、d、mc 这些传入一个 URI 的;
类型声明:如 x:Class 这些在字符串字面量里面传入类名的。
: 冒号是访问命名空间的符号。
一些命名空间前缀(可以是作为库、包)的主要用途(并不是因为它这个前缀名字而有用途,是因为传入了 URI 给 ...
在 C# 中交互 JSON 数据
浓缩版:请跳转至 总结 部分。
JSON 数据的准备这里使用的 JSON 数据,必须是对象数组。该对象数组里面的元素对象要使用一样的字段,且包含至少一个唯一值字段。
比如
123456789101112131415161718// nodes.json[ { "id": 1, "name": "412总站", "coord": [0, 0] }, { "id": 2, "name": "融通路华翠北路口", "coord": [-100.0, 0.0] }, { "id": 3, "name": "海八路华翠北路口", "coord": [-100.0, -20.0] }]
显然,这个 JSON 数据可以视作一张数据表,每一 ...
Github 本地同步至仓库命令流程
非初次同步依次执行以下 三部曲 命令即可。
暂存
1git add .
提交
1git commit -m "你的提交信息"
推送
1git push -u origin main
初次同步请参考下面的内容。
初次同步初始化本地 Git 仓库在本地自动创建 .git 目录,初始化本地的 Git 仓库。
1git init
建立仓库关联建立本地仓库和远程仓库的关联,只能添加一次,之后要用 git remote set-url 命令修改远程仓库地址。
1git remote add origin 浏览器打开仓库上面的网址.git
暂存当前所有变化其中 . 表示当前目录及子目录的所有变化。此步骤未真正进入进版本历史。
1git add .
重命名当前分支为 main本地仓库本身默认为 master,但是 Github 上面要求 main 分支,所以需要重命名。
1git branch -M main
第一次正式提交这是第一次正式提交,真正把你的项目历史开始记录了。提交信息最好看得懂。
1git commit -m "Initial up ...
ArcGIS Pro 笔记本(Jupyter Notebook)使用技巧
笔记本初始化把以下代码放到笔记本的第一个 cell 中,可以初始化以下环境:
此工程
地图
默认文件夹
默认数据库
12345678910111213import osimport datetimeproject = arcpy.mp.ArcGISProject("CURRENT")mapper = project.listMaps("地图")[0]gdb = project.defaultGeodatabasefolder = arcpy.Describe(gdb).patharcpy.env.overwriteOutput = Trueprint(f'此工程已于 {datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")} 被该脚本加载')print('地图已被成功加载')print(f'默认数据库路径为 {gdb}')print(f'默认数据库所在文件夹路径为 ...
Tyex 的 WPF 学习笔记
一、关于 WPFWPF 就是 Windows Presentation Foundation(窗体呈现基础),它是一个 UI 框架,用于创建桌面客户端应用程序。
WPF 是 .NET 的一部分。WPF 使用 XAML(可扩展应用程序标记语言)给应用程序提供声明性模型。
WPF 项目可从 Visual Studio 开发。本文将从 Visual Studio 开发 HelloWPFApp 项目为例。此时需按照已知流程创建一个 .NET 8.0 的 WPF 项目。
Visual Studio 会创建 HelloWPFApp 项目和解决方案。解决方案资源管理器会显示各文件。WPF 设计器会拆分 MainWindow.xaml 的设计视图和 XAML 视图。
项目可以被自行定义:视图菜单 -> 属性窗口(或按 F4),就可以显示 / 更改应用程序的项目项、控件和其他项的选项。
二、设计 UI按 Shift + F7 可打开设计器。此次会添加一个 TextBlock 控件、两个 RadioButton 控件和一个 Button 控件。
2.1 添加 TextBlock 控件按 C ...
Tyex 的 C# (基础)学习笔记
完成了 C# 入门之后,就可以进入 C# 基础阶段。
一、命令行参数命令行会给 C# 程序的 Main 方法以字符串数组的形式传递参数(可选),正如 Main 的方法签名通常为 static void Main(string[] args)。
默认情况下,命令行使用空格分隔相邻的参数。如果一个参数里面包含空格,则需要用双引号包裹这个参数,如:
命令行上的输入
传递给 Main 的字符串数组
executable.exe a b c
"a"
"b"
"c"
executable.exe one two
"one"
"two"
executable.exe "one two" three
"one two"
"three"
这个例子调用了命令行参数:
123456Console.WriteLine($"parameter count = {args.Length ...
Tyex 的 C# (入门)学习笔记
我现在有着一定的 Python 和 C 基础(Python 相对更精通些)。为了能够开发桌面应用程序,我决定让自己接触 C#。
这篇笔记是我的 C# 入门阶段学习笔记。
Tyex 的 C# 入门学习笔记一、我的第一个 C# 项目1.0 认识 C#先在 Visual Studio 创建一个基于 C#、以控制台应用程序为框架的应用程序。这次不适用顶级语句,于是可见:
C# 项目结构如下:
12345解决方案 └── 项目 └── 源代码文件和命名空间 └── 类 └── 字段和方法(包含被编译后执行的Main方法)
其中,源代码文件和命名空间是两种不同的类封装模式。源代码文件属于物理封装,在文件管理系统使用。而命名空间属于逻辑封装,不依赖源代码文件的物理结构让编译器根据命名空间来整理类和子命名空间。
框架让项目被创建时自带一些现成的内容,其中就有一个 Program.cs 的源代码文件,它里面先定义了了一个和项目同名的命名空间,并定义了一个 Program 类,还定义 ...
Tyex广州地铁近期规划图下载站
下载站:Tyex广州地铁近期规划图写在前面广州地铁第四期规划成为当下广州民生的一大热点。本人作为关注地铁规划的热心市民,又略懂绘图技术,制作了近期的地铁规划图,内容包含:
当前线网
第三期规划线网(已落实规划)
第四期规划线网(预测中,暂未落实)
大湾区一期地铁部分(修编已批,部分线路暂未落实)
最新下载链接
Tyex广州地铁近期规划图.pdf(点击下载)
Tyex广州地铁近期规划图.jpg(点击下载)
预览图(不清晰,清晰的请下载上面的原图):
购买打印版(打印版无水印!)扫描下方二维码,添加助理微信
Python快速入门(新版)
Python是一门极易入手的解释型面向对象编程语言。由于之前的教程存在一些背书错误,也有小伙伴反映有些地方不容易理解。因此我决定重新编写一篇 Python 快速入门教学文章,这次的教学更加科学、易懂、全面。
学习代码的过程通常是先学它的基本的数据类型,然后从浅入深学习语法结构,最后再学习高级用法。此次快速入门教学会按照这个学习顺序让大家逐步学会 Python。
如果你不会甚至没有Python,你可以下载一个annaconda,根据它界面的提示一步步教你启用 Python 环境。跑代码的时候,只需要在 Pycharm 或者 VSCode 这样的编辑器里打开文件,然后按 F10 或者点击“三角形”运行按钮,就可以运行(跑)代码。
学习代码前,不妨试着跑一个最简单的显示“Hello, World!”的程序:
1print("Hello, World!")
这个程序是一个print()函数表达式的语句。如果一切顺利,你会看到命令行窗口输出“Hello, World!”字样。
接下来,我们开始系统化快速入门 Python,大概需要6个小时。如有建议,可以通过邮件发送至 ...