问题描述 应公司运营的要求,需要写一个基于FTP的文件上传工具(win下),遂决定,基于C# 及 winform 写一个窗体小程序;经过了一周的深夜打码,终于初具雏形,最初在公司FTP的服务器上测试,前前后后踩了数十个坑...昨天调试到深夜三点多,依然没有任何解决方案,今天到公司后继续排查,打各种断点,查各个变量及类成员,各种异常通过Google,baidu,msdn,github,stackoverflow去搜相关问题,都没有找到真正能解决的问题...有说编码的问题,有说长链接的问题,有说路径的问题,有说被动主动的问题,有说权限问题…… 真是坑的.........关键词 出现“webReq.ContentType”引发了“System.NotSupportedException”类型的异常 “webReq.PreAuthenticate”引发了“System.NotSupportedException...//bbs.csdn.net/topics/380034923 https://msdn.microsoft.com/zh-cn/library/system.net.ftpstatuscode(v=vs
本文转载:http://www.cnblogs.com/kiddo/archive/2008/09/25/1299089.html 我们说一个数据结构是线程安全指的是同一时间只有一个线程可以改写它。...这样即使多个线程来访问它,它也不会产生对线程来说很意外的数据。 C#中的Dictionary不是线程安全的,我在下面这个例子中,把一个Dictionary对象作为了全局的static变量。...其他的外层代码可以自带的Dictionary相同了。 我们看Dictionary的实现接口, 自定义一个线程安全的数据对象类。... /// The 类 详细可以查看:http://msdn.microsoft.com/zh-cn/library/dd287191(v=vs.110
理想的代码优化方式 团队日常协作中,自然而然的会出现很多重复代码,根据这些代码的种类,之前可能会以以下方式处理 方式 描述 应用时可能产生的问题 硬编码 多数新手,或逐渐腐坏的项目会这么干,会直接复制之前实现的代码...带来的问题显而易见的多,例如架构会逐渐随时间被侵蚀,例外越来越多 提取函数 提取成为函数,然后复用 提取函数,然后复用,会比直接硬编码好些,但是仍然存在大量因“例外”而导致增加参数、增加函数重载的情况...模板生成器 CodeSmith/T4等 因为是独立进程,所以对于读取用户代码或项目,实现难度较高,且需要现有用户项目先生成成功,再进行生成 ,或者是完全基于新项目 代码片段 VS自带的代码片段功能 无法对复杂的环境或条件做出响应...直到读到了这篇文章 Introducing C# Source Generators,文中提供了一种新的解决方案,即通过Roslyn的Source Generator在编译时直接读取当前项目中的语法树,...OverrideMethod() => throw new System.NotSupportedException("Compile-time-only code cannot be
在 .NET / C# 程序中出现异常是很常见的事情,程序出现异常后记录日志或者收集到统一的地方可以便于分析程序中各种各样此前未知的问题。...另外,在 ToString() 方法中,如果包含 PDB,那么异常堆栈中还会包含源代码文件的路径以及行号信息。...代码 为了提取出以上的关键特征,我需要写一段 C# 代码来做这样的事情: 1 2 3 4 5 6 7 8 public (string typeName, IReadonlyList...param> /// /// 异常堆栈中的所有帧的方法签名,指的是在一个类型中不会冲突的最小部分,所以不含返回值和可访问性...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
第一次机会异常 .NET 程序代码中的任何一段代码,在刚刚抛出异常,还没有被任何处理的那一时刻,AppDomain 的实例会引发一个 FirstChanceException 事件,用于通知此时刚刚开始发生了一个异常...这时,这个异常还没有寻找任何一个可以处理它的 catch 块,在此事件中,你几乎是第一时间拿到了这个异常的信息。...比如,我们只能拿到这个: 1 2 System.NotSupportedException: BitmapMetadata 在 BitmapImage 上可用。...关于等待时间,可以阅读我的另一篇博客: C#/.NET 中 Thread.Sleep(0), Task.Delay(0), Thread.Yield(), Task.Yield() 不同的执行效果和用法建议...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。
前言 前段时间微软发布了适用于VS Code的C#开发工具包(注意目前该包还属于预发布状态但是可以正常使用),因为之前看过网上的一些使用VS Code搭建.NET Core环境的教程看着还挺复杂的就一直没有尝试使用...不过听说C# 开发工具包提供了一系列功能和扩展,从而极大的提高了VS Code中编写、调试和管理 C# 代码的体验。看到这个今天就不得不上手实战一下看看到底有没有官网描述的这么好用。...它与 C# 扩展协同工作,该扩展已更新为由新的完全开源的语言服务器协议 (LSP) 主机提供支持,打造了一个高性能、可扩展且灵活的工具环境,可以轻松地将新体验整合到适用于 VS Code 的 C# 中。...打开VS Code=>找到拓展(Ctrl+Shift+x)=>搜索C#=>点击安装 本机.NET环境安装 编码之前你首先需要确保你的本机上安装了.NET SDK以确保应用能够正常的运行和构建。...最后预览效果 实战感受 实战下来个人感觉C#开发工具包确实提升了VS Code中编写.NET的开发效率和体验,主要包括语法高亮、指令提示、代码补全、代码导航和调试支持等功能。
1、只想用一个存储区域来保存一个特定的数据,无论要创建多少个对象,甚至根本不创建对象。 2、是我们需要一个特殊的方法,即使没有创建对象,也可以调用的方法。 ...static:修饰类变量和类方法,它也可以修饰内部类 二、用法 1、静态方法 “静态”方法可针对类调用,不需要new一个对象,直接可以通过如下调用。...-1252 老马 原来编码假设是:Big5 ,被错误解读为:windows-1252 橾鎮 原来编码假设是:UTF-8 ,被错误解读为:windows-1252 ���� 2、静态常量 类型本身具有的属性通过类变量体现...,经常用于表示一个类型中的常量。...3、静态字段 下述代码能生成一个 static数据字段,并对其初始化: public class StaticTest { static int i = 47; } 现在,尽管我们制作了两个
数字32到126表示的这些字符都是可打印字符,0到31和127表示一些不可以打印的字符,这些字符一般用于控制目的,这些字符中大部分都是不常用的,下表列出了其中相对常用的字符。...160到255表示一些西欧字符,如下图所示: Windows-1252 ISO 8859-1虽然号称是标准,用于西欧国家,但它连欧元(€)这个符号都没有,因为欧元比较晚...实际使用中更为广泛的是Windows-1252编码,这个编码与ISO8859-1基本是一样的,区别只在于数字128到159,Windows-1252使用其中的一些数字表示可打印字符,这些数字表示的含义,...切换查看编码的方式,并没有改变数据的二进制本身,而只是改变了解析数据的方式,从而改变了数据看起来的样子。(稍后我们会提到编码转换,它正好相反)。...与前文提到的切换查看编码方式正好相反,编码转换改变了数据的二进制格式,但并没有改变字符看上去的样子。
itemName=SteveCadwallader.CodeMaidVS2022CSharpier(免费)CSharpier 是一个用于 C# 代码的代码格式化工具。...itemName=ErikEJ.EFCorePowerToolsVisual Assist(付费)一款提高C/C++和C#开发者生产力的工具,改进了与IDE相关的导航、重构、代码生成和编码辅助功能,同时提供了针对...可快速搜索数据库中的SQL片段,并轻松导航到这些对象。...itemName=vs-publisher-306627.RedgateSQLSearchSupercharger(免费)Supercharger是一款用于Visual Studio的插件,旨在提供性能优化...itemName=kbuchi.ClaudiaIDEGhostDoc Community for VS2017 and Later(免费)GhostDoc 是一个 Visual Studio 扩展,适用于需要使用可自定义模板从源代码生成
VS2012 打包安装程序的时候看到一篇比较用心的博文,这可能是连很多C#教材都忽略的部分,或有也没一下详细,果断收了 文章来源 http://blog.csdn.net/zhang_xinxiu...程序编写测试完成后接下来我们要做的是打包部署程序,但VS2012让人心痛的是没有了打包工具。不知道出于什么原因微软没有将打包工具集成在开发环境中,但是我知道总会有解决办法的。...经过翻阅资料发现,VS2012虽然没有集成打包工具,但它为我们提供了下载的端口,需要我们手动安装一个插件InstallShield。网上有很多第三方的打包工具,但为什么偏要使用微软提供的呢?...目录下的AssemblyInfo类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写。...”,该错误是在说明在代码段1252处没有发现和文件名相关的语言库。
本文梳理下C#从1.0到7.0版本的一些常用特性,对于不常用的或者我没有用到过的一些特性,会列出来,但不会做详细描述。...C#2.0 C# VS版本 CLR版本 .NET Framework 2.0 VS2005 2.0 2.0 2.0中对应VS2005我用的也不多,因为很快就被VS2008替代了,不过在语言方面却带来了很多新的东西...提到迭代器,有两个概念需要了解 可枚举对象和枚举器,实现了System.Collections.IEnumerable接口的对象是可枚举对象,这些对象可以被C#中的foreach进行迭代; 实现了System.Collections.IEnumeror...XML; Linq To Sql:应用于SqlServer数据库; Linq To DataSet: DataSet; Linq To Entities:应用于SqlServer之外的关系数据库,我们还可以通过...Null条件运算符 在C#中,一个常见的异常就是“未将对象引用到对象的实例”,原因是对引用对象没有做非空判断导致。在团队中虽然再三强调,但依然会在这个问题上栽跟头。
例如,微软所用的ANSI代码页1252(CP1252)对应于ISO 8859-1字符集(即Latin-1字符集,但CP1252对Latin-1有扩展,其中编码128~159也被定义了字符,这是与Latin...;另外,对应的微软ANSI代码页为CP943,也对Shift JIS有扩展),用于日本字符。...微软于是在Windows操作系统没有转向UTF-16(UTF-16的推出要早于现在被广为认可的UTF-8)作为编码实现之前(即Windows2000发布之前),定义了一系列支持不同国家和地区所制定的字符集的代码页...代表性的是实现了ISO-8859-1(即Latin-1)的代码页1252(即CP1252),以及实现了GBK的代码页936(即CP936)。 3....系统Locale对应的代码页被作为Windows的默认代码页。在没有明确指定某个文本的编码信息时,Windows将按照指定的默认代码页的编码方案来解释该文本数据。
二、计算机编码的由来 计算机内部信息采用二进制编码,这决定了它只能直接识别0和1。我们所有各类型数据也都需要被转换为二进制0和1的序列存放在计算机中的。...三、认识常见的计算机编码 1.ASCll编码 计算机是由美国人发明的,他们设计的Ascll编码是基于罗马字母表的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。...Windows-1252编码: Windows-1252编码是ISO-8859-1编码的超集,现在的HTML5规范中就要求 ISO-8859-1 的文档实际上用 Windows-1252 编码进行分析...3.GB2312编码(简体中文) 汉字众多,一个字节长度的编码显然不适合,所以我国在1981年5月1日开始实施的一套国家标准GB2312,适用于汉字处理、汉字通信等系统之间的信息交换。...为了统一所有文字的编码,Unicode应运而生。 但是,UNicode仅仅只是一个字符集,就是为每个字符规定一个用来表示该字符的二进制数字,至于这个二进制代码如何存储则没有任何规定。
适用于 VS 2022 .NET 6.0(版本 3.1.0)的二维码编码器和解码器 C# 类库 本文转载自CodeProject上的一篇博文适用于 VS 2022 .NET 6.0(版本 3.1.0)...C#示例程序,基于VS 2022 .NET 6.0(版本 3.1.0。...附带的源代码由两个解决方案组成,一个 QR Code编码器解决方案和一个 QR Code解码器解决方案。软件升级到VS 2022 .NET6.0。源代码是用 C# 编写的。它是一个开源代码。...该编号不是二维码数据的一部分。它用于根据字节值的替代解释(例如,替代字符集)对数据进行编码。 该程序分析每个数据段以找到“最佳”编码。...这个对象是可重用的。如果你想创建很多二维码,就复用这个对象。没有初始化或处置要求。可选参数将保留上次运行时的值。
另一方面,示例 3-13 适用于任何可迭代对象needles和haystack,而示例 3-12 要求两者都是集合。但是,如果你手头没有集合,你可以随时动态构建它们,就像示例 3-14 中所示。...在图 4-1 中显示的编码被选为代表性样本: latin1又称iso8859_1 重要,因为它是其他编码的基础,例如cp1252和 Unicode 本身(注意latin1字节值如何出现在cp1252字节和代码点中...提示 现在 Python 3 源代码不再限于 ASCII,并且默认使用优秀的 UTF-8 编码,因此对于像'cp1252'这样的遗留编码的源代码,最好的“修复”方法是将它们转换为 UTF-8,并且不再使用...在 Windows 上,不仅在同一系统中使用不同的编码,而且通常是像'cp850'或'cp1252'这样只支持 ASCII 的代码页,还有 127 个额外字符,这些字符在不同编码之间并不相同。...在没有元数据的情况下考虑编码检测的理论和实践:理论上是不可能的,但实际上 Chardet 软件包对一些流行的编码做得相当不错。
它尤其频繁出现于数据传输中,例如你在澳大利亚的机器上建立的SAS数据集死活没法在中国的SAS中打开,或是R 操作台打印中文总是乱码等等(关于中文编码请阅读大猫上一期《我知道你不知道GB2312》)。...Unicode是一类代码的统称,是出现最晚、最先进的代码系统,可以表示所有语言。UTF-8是其中最流行的编码格式,也是我们传输文件的首选。...这样我们以后交流数据,只要报上这个代号就知道对方用的是啥了。...CP-1252“几乎”和Latin-1没有区别。唯一重要的区别是:在英语环境,Windows平台的R采用的是CP-1252而不是Latin-1编码!...Unicode是一类代码的统称,是出现最晚、最先进的代码系统,可以表示所有语言。UTF-8是其中最流行的编码格式,也是我们传输文件的首选。
该死的是,原来用老机器配置不高的情况下没有出现过。换了更好的新机器后出现的。...// // 摘要: // 将方法排入队列以便执行,并指定包含该方法所用数据的对象。此方法在有线程池线程变得可用时执行。...// // state: // 包含方法所用数据的对象。...public static bool QueueUserWorkItem(WaitCallback callBack, object state); 经过一番测试重新了故障现象,但由于是生产环境代码不好大动...编码测试过程 using System; using System.Threading; namespace ConsoleShell3 { //164-184 class Program
对于我们程序员,最关心的还是如何快速掌握VS2012,用于平时的工作中。本系列目的在于让大伙和我们一起完成这一目标。...VS2012内嵌了单元测试框架(Unit Test Framework),可用于C#、Visual Basic以及native C++。编译、运行和调试内部代码都很方便。...为了帮助建立单元测试,VS2012还提供了单元测试项目模板(Test Template)。 ? 代码分析 VS2012提供多个分析规则分类,方便使用。...对于 C++ 项目,这些规则可帮助检测常见的编码错误,如缓冲区溢出、 空指针取消引用、 使用未初始化的变量,或滥用的 Api。如果不修复错误,这些错误有可能导致安全漏洞或应用程序崩溃。...语言特定的功能 新的 VS 2012 语言和库功能可用于 Visual Basic 、 C#、 C++ AMP 和 增强的 C++ 11 标准。VS2012默认支持 .net 4.0 和 4.5。
由于其更通用的数据类型,Python适用于比Awk甚至Perl更大的问题域,但是Python中的许多事情至少与在这些语言中一样容易。...用Python编写的程序通常比等效的C,C ++或Java程序短得多,原因如下: 高级数据类型允许您在单个语句中表示复杂的操作; 语句分组是通过缩进来完成的,而不是开始和结束括号; 没有变量或参数声明是必要的...在该编码中,世界上大多数语言的字符可以在字符串文字,标识符和注释中同时使用 - 尽管标准库只使用ASCII字符作为标识符,这是任何可移植代码都应遵循的约定。...要声明除默认编码以外的编码,应该添加特殊注释行作为文件的第一行。...语法如下: # -*- coding:encoding -*- 例如,要声明要使用Windows-1252编码,源代码文件的第一行应该是: # -*- coding:cp-1252 -*- One exception
让数据科学家能够简单执行跨语言任务,就像是使用SQL查询SQL Server数据库,并将表格结果共享至JavaScript和HTML,创建可互动可视化的应用。...Notebooks是一种方便使用的交互式程序开发工具,可用于执行代码、可视化数据、执行方程式,或是编写纯文字,Notebooks的特性是让用户能以增量的和分段的方式,执行单元格内的程序。...最有名的Notebooks来自Jupyter项目,多数人会结合Python和Jupyter Notebooks一起使用,快速迭代代码,以创建具有文字和数据可视化的内容,也可成为学习程序编程语言,或快速制作概念原型的工具...的指令或快捷键,直接建立 dib 或 ipynb 文件 增一个 ipynb 文件: 现在我们已经可以看到让我们编码的单元格了,这样就完成准备工作啦!...因此我们可以在代码区块之间适当地加入 Markdown 区块,来提供需要的信息,或是纪录需要的笔记。 让我们编写的过程可更有条理,之后回来阅读也可以更快掌握内容。
领取专属 10元无门槛券
手把手带您无忧上云