C# 语言高级特性知识导航贴,持续更新

少有人走的路

勇哥的工业自动化技术专题网站, 

C# 语言高级特性知识导航贴子,持续更新中


目录


LinQ相关

表达式树

异步编程

委托与事件

C shape基础回顾

新版C shape的特性

反射相关

WPF教程

WorkFlow教程

C shape设计模式

visual studio C shape中常用的快捷键

常用程序的快速启动

常见的Git指令

UML类图

牛人博客

常见的模块插件

    OSGI.net



LinQ相关


LinQ实战学习笔记(一) LINQ to (Objects, XML, SQL) 入门初步

LinQ实战学习笔记(二) C#增强特性

LinQ实战学习笔记(三) 序列,查询操作符,查询表达式,表达式树

LinQ实战学习笔记(四) LINQ to Object, 常用查询操作符


入门:《走进 LINQ 的世界

进阶:《LINQ 标准查询操作概述(强烈推荐)

技巧:《Linq To Objects - 如何操作字符串

Linq To Objects - 如何操作文件目录


表达式树


表达式树练习实践:入门基础   

表达式树练习实践:C# 循环与循环控制

表达式树练习实践:C#判断语句  

表达式树练习实践:C# 五类运算符的表达式树表达  

表达式树练习实践:变量、常量与赋值   

表达式树练习实践:C#值类型、引用类型、泛型、集合、调用函数   

C# 知识回顾 - 表达式树 Expression Trees

C# 表达式树 创建、生成、使用、lambda转成表达式树~表达式树的知识详解   


异步编程


异步编程系列1:

走进异步编程的世界 - 开始接触 async/await(推荐)

走进异步编程的世界 - 剖析异步方法(上)

走进异步编程的世界 - 剖析异步方法(下)

走进异步编程的世界 - 在 GUI 中执行异步操作

异步编程系列2:

利用 async & await 的异步编程

怎样使用 async & await 一步步将同步代码转换为异步编程

利用 async & await 进行异步 IO 操作

async 的三大返回类型


委托与事件


C# 知识回顾 - 委托 delegateC# 知识回顾 - 委托 delegate (续)

C# 知识回顾 - 事件入门C# 知识回顾 - Event 事件


C shape基础回顾


C# 知识回顾 - 序列化

C# 知识回顾 - 特性 Attribute剖析 AssemblyInfo.cs - 了解常用的特性 Attribute

C# 知识回顾 - 装箱和拆箱

C# 知识回顾 - 你真的懂异常(Exception)吗?(为以下 3 篇异常的合并与总结: C# 知识回顾 - 异常介绍C# 知识回顾 - 学会使用异常C# 知识回顾 - 学会处理异常 )

string 与 String,大 S 与小 S 之间没有什么不可言说的秘密

了解过入口函数 Main() 吗?带你用批处理玩转 Main 函数

回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性(推荐)

C# 基础回顾 - 匿名方法

C#写文件方法总结

C# 线程池基础上    

C# PropertyGrid控件应用心得

C#中out和ref的区别


Log4net在类库中的用法   

泛型编程之强制类型转换、继承和泛型   

C#关键字之Partial详解   

C#中Abstract和Virtual的区别   

C# 运算符重载   

C#共有六种访问修饰符:public、private、protected、internal、protected internal、sealed

勇哥谈谈C#中的接口Interface的常用套路


新版C shape的特性


C#7.0新特性(VS2017可用)
C# 7 中的模范和实践
C# 这些年来受欢迎的特性
VS2017 C#7 新特性

VS 2019 来了,C#8.0 新增功能



反射相关

C# 反射取得类的属性名、类型、值

C# 反射的知识点实验程序

[netMarketing类库] reflectHelper类:反射功能辅助类

C#反射:GetManifestResourceStream 获取项目资源

C#- 反射之 GetType()方法

C# 反射调用另一个模块中的窗体并显示

C# PropertyGrid控件应用心得


WPF教程


勇哥对wpf的Grid的学习记录

WPF中 x:Name和Name的区别

勇哥对wpf布局容器的学习记录

WPF 布局控件

勇哥的wpf小练习:MTV点歌小程序(1)体验一下界面控件布局与winform的不同

WPF教程: GridSplitter分割线

WPF与Winform互操作:彼此窗体互相调用



前言:WPF之What&Why  

WPF之XMAL----XMAL概览    

WPF之从0开始学习XMAL   

WPF学习---系统的学习XAML语法   

WPF学习之X名称空间详解   

WPF学习之控件与布局   

WPF之Binding深入探讨   

WPF学习之深入浅出话属性  

WPF之深入浅出话事件  

WPF学习之深入浅出话命令 

WPF深入浅出话资源  

WPF学习之深入浅出话模板   

WPF学习之绘图和动画 



WorkFlow教程


WF4.0实战(十一):邮件通知  

vs2017没有workflow项目吗? 

WF工作流设计器   

WF工作流持久化  

WF4 数据模型  

WF4 Bookmark  

《WF编程》系列之40 - 自定义活动:活动的执行  

WF4.0流程设计器 (NET4.0 RC 版)  



WF4.0 基础篇 (一)开始使用WF   

 WF4.0 基础篇 (二) Activity介绍及WriteLine Activity的使用 

WF4.0 基础篇 (三) 流程实例WorkflowApplication与设计WF程序的基本原则  

WF4.0 基础篇 (四) 顺序容器Sequence 与CodeActivity  

WF4.0 基础篇 (五) 数据的传递 Variable变量  

WF4.0 基础篇 (六) 数据的传递 Arguments 参数  

WF4.0 基础篇 (七) 数据的传递 变量与参数的使用 

WF4.0 基础篇 (八) 控制流Activity  

WF4.0 基础篇 (九) 控制流Activity  

 WF4.0 基础篇 (十) Collection 集合操作  

WF4.0 基础篇 (十一) Excetpion 异常 与 TerminateWorkflow 结束流程  

WF4.0 基础篇 (十二) CancellationScope 取消容器  

WF4.0 基础篇 (十三) InvokeMethod 调用方法  

WF4.0 基础篇 (十四) Delay 与WF4中的线程  

WF4.0 基础篇 (十五) TransactionScope 事物容器 

WF4.0 基础篇 (十六) CompensableActivity 补偿  

WF4.0 基础篇 (十七) Bookmark 

WF4.0 基础篇 (十八) Flowchar  

WF4.0 基础篇 (十九) Persistence 持久化  

WF4.0 基础篇 (二十) ActivityWithResult 有返回值Activity  

WF4.0 基础篇 (二十一) WorkflowInvoker 

WF4.0 基础篇 (二十二) Tracking 

WF4.0 基础篇 (二十三) 范型Activity  

WF4.0 基础篇 (二十四) Async Activity  

WF4.0 基础篇 (二十五) ActivityAction 与 InvokeAction  




WF 从入门到精通(第十五章):工作流和事务  

WF 从入门到精通(第十四章):基于状态的工作流  

WF 从入门到精通(第十三章):打造自定义活动  

WF 从入门到精通(第十二章):策略和规则

WF 从入门到精通(第十一章):并行活动

WF 从入门到精通(第十章):事件活动

WF 从入门到精通(第九章):逻辑流活动

WF 从入门到精通(第八章):调用外部方法及工作流

WF 从入门到精通(第七章):基本活动的操作

WF 从入门到精通(第六章):加载和卸载实例

WF 从入门到精通(第五章):workflow 跟踪

WF 从入门到精通(第四章):活动及workflow 类型介绍

WF 从入门到精通(第三章):workflow 实例  

WF 从入门到精通(第二章):workflow 运行时  

WF 从入门到精通(第一章):Workflow 简介  


C shape设计模式


C# 设计模式练手(一):简单类工厂

C# 设计模式练手(二):单例模式  



C#  多线程专题


C# 多线程安全(1)局部变量的应用      

C# 多线程安全(2)多线程访问集合的问题1     

C# 多线程安全(2)多线程访问集合的问题2     

C#中的值类型和引用类型以及堆栈    

C#引用类型和值类型在堆、栈中的存储   

C# 多线程安全(3)lock的死锁问题     

C# 多线程安全(4)lock的死锁问题2      

c# 看大神的线程详解    


C# 线程同步(1)- 临界区&Lock  

C# 线程同步(2)- 临界区&Monitor

C# 线程同步(3)- 互斥量 Mutex

C# 线程同步(4)- 通知&EventWaitHandle一家

C# 线程同步(5)- 信号量 Semaphore

C# 线程同步(6)- 读写锁 ReaderWriterLock



visual studio C shape中常用的快捷键


Ctrl+k,c                    批量注释
Ctrl+k,u                    取消批量注释
F5                            run程序
F11                        逐语句
F10                        逐过程
Ctrl+shift+f9          删除全部断点
F12                        转到对象定义处
Alt+方向上下键        当前行上下移动
shift+F12                查找对象所有的引用
ctrl+-                    向后导航。按f12键后,按此键可以退回刚才的位置
ctrl+shift+-            向前导航

ctrl+shift+H            查找替换
Ctrl+.                    在类名上按这个键,快速添加命名空间,事先必须要引用dll。
Ctrl + M + O         折叠所有方法
Ctrl + M + L          展开所有方法
Ctrl + W+T            任务列表
Ctrl+MM                快速折叠光标所在的当前方法
Ctrl+Alt+X            打开工具箱
Ctrl+Alt+L            解决方案管理器
Ctrl+Alt+I            即时窗口,可以测试函数结果
Shift+Alt+Enter    全屏幕
Ctrl+G                    转到对应行,即使不打开行号的情况下也有效果,也可以双击任务栏行号。

image.png        

打开行号方法如下图:

image.png

Ctrl+\,T            打开任务列表

任务列表可以显示todo:的代码段,一般用来定位程序关键部分,或者用来注释未完成部分。

image.png

atl+鼠标选择            创建矩形选区

矩形选区如下图所示。

image.png

Ctrl+tab        快速在不同窗口间切换

image.png

输入prop 按两次tab可以生成自动属性

Ctrl+R,E            生成封闭字段


常用程序的快速启动


notepad            记事本
excel                    excel
hdevelop            halcon
smss                    sql server Management studio
cmd                    命令提示窗口
calc                    计算器
photoshop         ps
mspaint              画图
osk                      虚拟键盘
mstsc                   远程桌面
gpedit.msc            组策略
regsvr32              注册控件

sysdm.cpl             计算机属性
ncpa.cpl                网络设备列表
win键+E                资源管理器
win键+R                运行                   
win键+R, 敲入cmd, 按ctrl+shift+enter            以管理员方式运行cmd
win键+shift+S       截图,还可以标注,十分好用!再也不用用微信截图了!
ctrl+shift+esc        进程管理器

devenv.exe          vs201*的执行文件名字
Shell:AppsFolder   打开win10中安装好的程序列表


常见的Git指令


git push -u origin master

更新到远程库


git push的完整参数如下:

如果本地分支名和远程分支名一样,则可以省略:号

git push <远程主机名> <本地分支名>:<远程分支名>



git push -u origin master -f

使用强制push的方法:这样会使远程修改丢失



git pull origin master

下载当前分支



git remote -v   查看远程仓库地址


git branch  查看当前的分支

git branch -a    查看远程分支

git checkout master   切换到master分支


git reflog   查看历史的commit

git reset --hard  b769fe2053a4285273a4330c0f100a973140f47f    回到指定的commit的版本





git add .   

git commit -m "注释内容"    主要是将暂存区里的改动给提交到本地的版本库




git branch -r:查看所有远程分支

git branch -a:查看本地和远程仓库的所有分支

git branch:查看本地所有分支

git checkout 远程分支名:拉取远程分支并同时创建对应的本地分支

git branch -rv 查看所有远程分支

git checkout -b + 分支名   创建分支

git push --set-upstream origin + 刚刚创建的分支名  远程分支创建成功

 git branch -d +分支名称   删除本地分支

git checkout master    切换到master分支


下面是注释分支的办法:

Administrator@SA-G--202110-DJ0221 MINGW64 /d/localLib/SMotion_v3 (devLxy)

$ git config branch.devLxy.description '此分支为刘xx2023年2月开始修改UI第三版 的工作'


Administrator@SA-G--202110-DJ0221 MINGW64 /d/localLib/SMotion_v3 (devLxy)

$ git config branch.devLxy.description

此分支为刘xx2023年2月开始修改UI第三版的工作





如果用编辑器vim编辑文件,退出时按:

Esc+shift+z+z。


情形2:

如果用Git命令(如git commit amend)修改.git里面的文件,Git自动启用Gun nano 6.2编辑器,

其退出方式则不同:

要先按 ctrl+X,再选Y,即可存盘退出。


情形3:

如果执行浏览提交日志命令(如git log等)进入浏览模式,退出时:

先按回车到最后(见到END标记),然后按字母q即可退出。




https://git-scm.com/    官方git工具的下载地址

image.png


UML类图


深入浅出UML类图(一) 

深入浅出UML类图(二)  

深入浅出UML类图(三) 

深入浅出UML类图(四)  

深入浅出UML类图(五)  

使用VS2013或VS2015生成UML类图  


牛人博客


https://blog.csdn.net/lovelion/category_738449.html     刘伟技术博客  专注软件架构、设计模式、重构、UML和OOAD!CSDN博客排名:200



常见的模块插件


OSGi.NET


OSGI.NET 服务示例   

OSGI.NET 模块化示例演示   

创建OSGI主程序   


OSGi.NET 学习笔记 [目录] 

OSGi.NET 学习笔记 [前言] [环境准备]   

OSGi.NET 学习笔记 [模块化和插件化][概念]  

OSGi.NET 学习笔记 [模块化和插件化][实例]  

OSGi.NET 学习笔记 [模块化和插件化][小结]   

OSGi.NET 学习笔记 [面向服务架构支持][概念]  

OSGi.NET 学习笔记 [面向服务架构支持][实例][小结]  

OSGi.NET 学习笔记 [模块可扩展支持][概念][实例]   

OSGi.NET 学习笔记 [模块可扩展支持][小结]  

OSGi.NET 学习笔记 [热插拔与动态支持][概念][实例][小结]  

OSGi.NET 学习笔记 [多环境支持] [高级话题] 

OSGi.NET 学习笔记 [高级话题] [如何划分模块?] 



在线工具


https://tool.oschina.net/commons?type=4    ascII码表,颜色表


https://www.iconfont.cn/home/index?spm=a313x.7781069.1998910419.2   图标素材


http://pinvoke.net/     它包含了几乎所有的API在.NET中的调用说明,还有例子




下载VS 2017

由于勇哥手里的vs2015经常出现团队管理器无法使用git的问题(即使装了Git也没用,一直提示安装第三方git工具,此问题网上无解),

不得已经工作电脑经常需要安装vs2017,但是现在微软主推的是vs2022,如果选择下载历史版本的话需要输入微软账号,所以造成不能直接下载VS2017了。

可以用下面的办法,勇哥已经测试过是可用的:


VS 2017社区版(Community)下载地址:
百度网盘下载链接: https://pan.baidu.com/s/1jJXyRMA 密码: ub6c

下载的文件大小不足 1 MB,只是 VS 2017 Community 简体中文版的一个安装引导程序。启动后勾选需要的组建即可进行在线下载安装。



其它的VS2017版本见下面文章:

https://zhuanlan.zhihu.com/p/45859287



--------------------- 

作者:hackpig

来源:www.skcircle.com

版权声明:本文为博主原创文章,转载请附上博文链接!


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:
本帖最后由 勇哥,很想停止 于 2023-05-17 19:52:31 编辑
  • 评论列表:
  •  访客
     发布于 2020-12-06 16:02:20  回复该评论
  • 勇哥,这个C#介绍是不是可以理解为做机器视觉软件工程师需要掌握的C#内容?是否有再通俗的点,初级 中级 高级内容划分?谢谢。
    •  勇哥,很想停止
       发布于 2020-12-06 17:38:47  回复该评论
    • 这些内容并不是机器视觉软件工程师必须要掌握的C#内容。仅仅是一些较为高级的话题。
      记录这些知识仅是勇哥自己的读书笔记需要,因此没有初中高级这样的排列。
  •  访客
     发布于 2021-01-09 23:48:02  回复该评论
  • 勇哥,有没有简单一点的,有点高深,有没有c#群,加我一下,18680202334

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年3月    »
123
45678910
11121314151617
18192021222324
25262728293031
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864