C#
Damon_Code
传统工科+工业IT
展开
-
vs2015\2019安装时提示“安装包丢失或损坏”解决办法
问题描述,网上已经很多了,比如:VS2015离线安装 安装包损坏或丢失_Bruce-CSDN博客_vs2015安装包丢失或损坏终极解决VS2015 安装失败问题,如 安装包损坏或丢失 - TMD睡觉 - 博客园他们给的解决方法,一般是按照两个证书,我尝试后,并没有用。有效解决方法:每次出现 “安装包丢失或损坏” 时,按照程序会默认指向一个他希望的地址,解决方法就是把你从安装包解压出来的packages 文件复制到他希望的地方,如我的:从ISO加载后的驱动中,复制到 E:\vs201.原创 2021-09-23 12:56:04 · 13227 阅读 · 9 评论 -
vs2019 使用 SHFB-Sandcastle Help File Build 文档生成工具 自动生成程序文档
网上别人传的都比较老了,请到GitHub下载最新版本:https://github.com/EWSoftware/SHFB/releasesvs2019,安装好sandcastle后,如果直接使用GUI界面的,会有bug,报错“The tools version "15.0" is unrecognized.”问题具体见:https://github.com/EWSoftware/SHFB/issues/790原作者给出了答案:So, for now, if you have Visual.原创 2020-07-29 13:48:46 · 3522 阅读 · 1 评论 -
vs2017 2019 安装 报错 Microsoft.VisualStudio.Setup.WMIProvider ReturnCode 1722
请检查--服务中的 Windows Management Instrumentation 是否在运行,启动这个服务再安装就可以了。https://developercommunity.visualstudio.com/content/problem/1038410/packageidmicrosoftvisualstudiosetupwmiproviderpack-11.html原创 2020-05-25 22:05:35 · 2049 阅读 · 1 评论 -
C# 多线程 传入参数
lamada表达式是向线程传入参数的最方便、最强大的方法。有一方法: void DoMore1(string name, string age) { Console.WriteLine(name + " is " + age); }调用方法://强烈推荐这种方法************* Thread t5 =...原创 2019-05-19 16:01:19 · 5021 阅读 · 0 评论 -
wcf初探 -- 程序启动 和 配置文件 app.config 启动
1、配置文件启动与绑定1.1、在host的app.config中配置服务的name behaviroConfiguration A B C 选项,host对server是添加引用,不是添加 服务引用。 <system.serviceModel> <services> <!--1--> <service ...原创 2018-10-24 09:55:19 · 1643 阅读 · 0 评论 -
wcf初探---绑定、宿主、服务契约、数据契约
1、宿主 host 对 wcf 服务类库 或 wcf 服务应用程序 是 添加 引用,然后手动增加app.config内的内容,这里可以设置服务的绑定类型、地址2、client 对 wcf 服务类库 或 wcf 服务应用程序 是 添加 服务引用,,查找服务引用的URL地址可以是 服务模型的,也可以是1 中host 启动后的地址。添加后将在app.config中自动增加内容,绑定类型受到1中设...原创 2018-10-23 16:39:14 · 385 阅读 · 0 评论 -
WCF初探--命令行参数启动 WcfTestClient 免写客户端测试
WcfTestClient 是VS 开发环境自带的一个wcf 客户端。在VS 的安装目录下。在调试WCF 服务时,可以启动来帮助调试。 启动方法有3种':1、到其所在路径(Visual Studio安装路径\Common7\IDE\WcfTestClient.exe)双击打开。2、在“Visual Studio命令提示(Visual Studio Command Prompt ...原创 2018-10-22 16:46:43 · 726 阅读 · 0 评论 -
WCF初探 --- 多个契约、多个服务 绑定一个端口
目的:在1个wcf 服务应用程序中,包含多个服务契约 IService1.cs IService2.cs ....等。在winform窗体作为宿主,启动wcf,并绑定 IService1.cs IService2.cs 到同一个端口5031下面。 步骤1、正常创建wcf 应用程序,然后添加wcf 服务,这时包含2个契约。2、添加一个winform项目,并引用-添加服务引用,...原创 2018-10-18 13:59:14 · 2254 阅读 · 0 评论 -
C# mschart 控件 框选 删除部分数据 及游标CursorX CursorY 使用
C# mschart 控件 框选 删除部分数据实现功能 :1、鼠标框选,选中chart控件中部分数据;2、将选中的数据标红显示;3、删除选中的红色数据;demo源码下载:https://github.com/DamonDBT/CsharpDemo5 核心代码说明:1、对画图区域的设置,首先说明chart控件的面积问题。对于下图中的一个chart,有2个Positio...原创 2018-09-28 14:15:12 · 5332 阅读 · 1 评论 -
C# 多线程 捕获异常 try catcht finally
拍自 果壳中的C#转载 2019-05-19 16:19:11 · 749 阅读 · 0 评论 -
C# task
原文:https://www.cnblogs.com/struggle999/p/6933376.html在此基础上,加上个人实践成本文。1、task不获得返回值,不阻塞主线程main System.Console.WriteLine("主线程开始"); Task<int> task = Task.Run(() => Thread...转载 2019-05-20 09:38:20 · 343 阅读 · 0 评论 -
C# this 的用法
转:https://www.cnblogs.com/yellowcool/p/7908607.html用法一 this代表当前类的实例对象 public class Test { private string scope = "全局变量"; public string getResult() { st...转载 2019-05-20 11:50:54 · 1428 阅读 · 0 评论 -
C# 类型 占几个字节, 不同编码方式 比较
1、类型bool -> System.Boolean (布尔型,其值为 true 或者 false)byte -> System.Byte (字节型,占 1 字节,表示 8 位正整数,范围 0 ~ 255)sbyte -> System.SByte (带符号字节型,占 1 字节,表示 8 位整数,范围 -128 ~ 127)char -> System.Ch...原创 2019-05-21 09:34:38 · 4397 阅读 · 0 评论 -
file filestream sreamreader 几种文件读取方式
1、FileInfo,查看文件相关的信息,如文件的大小,名称、创建事件、修改时间、后缀、是否只读等,同时可以进行创建、拷贝、移动、删除文件。2、File,主要进行文件内容的读写,主要方法有以下:File.ReadAllBytes //读取所有字节 File.ReadAllLines //读取所有行,用于读取文本文件 ...转载 2019-05-16 19:02:09 · 2172 阅读 · 0 评论 -
C#的修饰符
C#修饰符之类修饰符:public、internal、 partial、abstract、sealed、staticC#修饰符之成员修饰符:public、protected、private、internal、sealed、abstract、virtual、override、readonly、constc#里面一共有五种访问修饰符,五种中每个种的访问权限都是不一样的5种访问修饰符pu...原创 2019-05-18 15:44:12 · 201 阅读 · 0 评论 -
C#中隐藏(new)和方法重载(overide)区别 --未完待续
重写和隐藏的定义: 重写:基类方法声明为virtual(虚方法),派生类中使用override申明此方法的重写. 隐藏:基类方法不做申明(默认为非虚方法),在派生类中使用new声明此方法的隐藏。 自己的理解: 比如父类A,有个方法标记为virtual,a(){}子类B继承A,...原创 2018-10-11 11:04:21 · 507 阅读 · 0 评论 -
显示接口和隐式接口的区别
<1>隐示实现接口和类都可以访问 显示实现只有接口可以访问。<2>显示实现益处1:隐藏代码的实现功能2:在使用接口访问的系统中,调用者只能通过接口调用而不是底层的类来访问,有利于安全性 综上:当类或结构继承接口时,意味着该类或结构为该接口定义的所有成员提供实现。接口本身不提供类或结构能够以继承基类功能的方式继承的任何功能。基类实现接口,派生类将继承该实现...原创 2018-10-11 10:26:30 · 2176 阅读 · 0 评论 -
把类当做返回,和多个out 有啥差别啊?
C#中虽然都实现了返回多个变量,但是如果这多个变量没在一个类里面呢?要么重新组织,要么out out out原创 2018-09-20 16:55:51 · 127 阅读 · 0 评论 -
【原创解决】无法将类型为“OPCAutomation.OPCServerClass”的对象强制转换为类型“OPCAutomation.IOPCGroups”。
【百分百原创 】我是C# vs2010 ,测试了win7 64 win10 64 都可以。自己也困扰了很久,解决后分享出来,网上确实很难找到详细的资料。1、VS中设置程序的属性--CPU目标改为862、OPCAutomation 228K大小,32位系统,复制到C:\Windows\System32下,然后管理员身份打开CMD,cd C:\Windows\System3...原创 2018-06-14 09:43:28 · 4870 阅读 · 1 评论 -
【原创】winform 中嵌入echart,同时有datagridview时错误
如题,情况是,在C#的 winform程序中,用webbroswer控件,内嵌入1个包含有echart的控件时,同时这个窗体中还有datagridview 控件。如果dgv控件没有formating事件时,echart显示ok。但是如果dgv中有了formating事件,echart就会显示不完整。没法,去掉事件就ok了。...原创 2018-07-29 13:42:45 · 946 阅读 · 0 评论 -
C# DataGridView 双向 绑定
自己学习记录。主要代码:1、如何绑定到dgv2、后台增加数据,dgv也变化 后来有研究,发现就算是直接用this.dataGridView1.DataSource = list1;只要list1 是BindingList 类型,同样可以实现1、前台数据变化,后台list变化,包括增加、删除、改变某个单元格值;2、后台list增加、删除,前台显示增加、删除。但是如...原创 2018-07-30 16:47:59 · 6377 阅读 · 0 评论 -
winform 在不同分辨率,不同屏幕下,可以任意缩放比例,调整字体大小、界面恢复
Demo 可以到我的Github 下载。 https://github.com/DamonDBT/winform-autosize-dpi实现1、 winform 在不同分辨率,不同屏幕下,可以任意缩放比例,2、控件 相互关系不变,自动跟随主窗体调整大小。3、增加了一键恢复到原始状态的功能。4、可以自动调整字体大小。 备注:1、所有控件的anchor 属性,要用to...原创 2018-08-15 14:37:26 · 17112 阅读 · 4 评论 -
Q&A-1-进程、线程区别
进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;或者更专业化来说:进程是指程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集。从内核的观点看,进程的目的就是担当分配系统资源(CPU时间、内存等)的基本单位。线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。进程——资源分配的最小单位,线程——程序执行的最小单位。线程进程的区别...转载 2018-08-30 10:59:50 · 174 阅读 · 0 评论 -
Q&A-2-操作xml 的 3 种方式
1、DOM模式: 方法优点是便于查找 XmlDocument,可以随机访问,向前向后, 可以使用xpath查询,缺点在于它需要一次性的加载整个文档到内存中,对于大型的文档,这会造成资源问题2、流模式:XmlTextReader方法是流读取内存暂用少,任何时候在内存中只有当前节点,但它也有它的不足,它是只读的,仅向前的,不能在文档中执行向后导航操作。3、.Linq to Xml 最新方法...转载 2018-08-30 11:10:51 · 170 阅读 · 0 评论 -
Q&A-3-CLR
概述.NET Framework的核心是其运行库的执行环境,称为公共语言运行库(CLR)或.NET运行库.通常将在CLR的控制下运行的代码称为托管代码(managed code).但是,在CLR执行编写好的源代码之前,需要编译它们(在C#中或其它语言中).在.NET中,编译分为两个阶段:1、把源代码编译为Microsoft中间语言(IL)。2、CLR把IL编译为平台专用的代码。...转载 2018-08-30 11:25:42 · 214 阅读 · 0 评论 -
C# datagridview 中点击头部 按数值 排序
默认dgv 中绑定了DataSource 的datatable后,点击头部,是按照 字符串的格式排序的。要实现按照 数值 方法排序。需要在 datatable 中 columns中的数据格式 为 double 、int 等。。 DataColumn dcy = new DataColumn("实际水流量", typeof(double)); DataColumn dcy1 =...原创 2018-09-16 21:36:22 · 5044 阅读 · 0 评论 -
解决 echart 中 erro :comonent series.*** not exists. load it first 问题
自己摸索解决,过程如下:错误如下:解决方案: 1、要引用最新的、完整的 echart.js 自己去官网 下载。2、要引用 echarts-gl.js ,自己下载。 是在下载页面的 “下载 ECharts GL。。“位置。把上面2个 都引用到自己的项目 中 ,问题解决。 ...原创 2018-09-12 20:20:50 · 4432 阅读 · 0 评论 -
Q&A-4-C# 中new的3 种用法
在C#中,new关键字可用作运算符、修饰符或约束。1)new运算符:用于创建对象和调用构造函数。2)new修饰符:在用作修饰符时,new关键字可以显式隐藏从基类继承的成员。3)new约束:用于在泛型声明中约束可能用作类型参数的参数的类型。public class Program: BaseClass { new public class T...转载 2018-09-07 12:57:24 · 541 阅读 · 0 评论 -
Q&A-5-C# const, readonly, static readonly
编译时---运行时Const 定义的是静态常在对象初始化的时候赋值.以后不能改变它的值.属于编译时常量。不能用new初始化。Readonly 是只读变量.属于运行时变量.可以在类构造函数里改变它的值.不能作用于局部变量。const 和 static 不能在一起用,它已经是静态的了。我们都知道,const和static readonly的确非常像:通过类名而不是对象名进行访问,在程式...转载 2018-09-07 12:59:46 · 120 阅读 · 0 评论 -
Q&A-6-object是引用类型
C#中的基类object不应该是引用类型的吗? 是! object a = 1; object b = a; a = 2; Console.Write(b); Console.Read();那这段代码,为什么输出的是1,b和a引用同一个地方,a改了为什么b没改。 ob...原创 2018-09-07 13:59:20 · 177 阅读 · 0 评论 -
Q&A-7-C# 拆箱 装箱
个人理解(本质):封箱是把值类型转换为引用类型拆箱是把引用类型转换为值类型值类型只会在栈中分配。 引用类型分配内存与托管堆。 托管堆对应于垃圾回收。 装箱是隐式的;拆箱必定是显式的。怎么理解:要在运行时成功拆箱值类型,被拆箱的项必须是对一个对象的引用,该对象是先前通过装箱该值类型的实例创建的。??//装箱: //对值类型在堆中分配一个对象实例,并将...转载 2018-09-07 16:20:51 · 140 阅读 · 0 评论 -
类是引用类型
C#中 { A aa = new A(); aa.a = 12; add(aa); this.textBox1.Text = aa.a.ToString(); 结果是23,因为是引用。 } private void add(A aa) 方法中,对传入的A...原创 2018-09-20 16:39:46 · 328 阅读 · 0 评论 -
性能调优攻略
关于性能优化这是一个比较大的话题,在《由12306.cn谈谈网站性能技术》中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法。本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充。在开始这篇文章之前,大家可以移步去看一下酷壳以前发表的《代码优化概要》,这篇文章基本上告诉你——要进行优化,先得找到性能瓶颈! 但是...转载 2018-02-24 09:04:52 · 131 阅读 · 0 评论