![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#高级编程
文章平均质量分 66
1440!
这个作者很懒,什么都没留下…
展开
-
在新窗口中打开 base64 格式的图片
申明一个标签:image,再将标签写入到新的页面中<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title><script>function open_win() { const img...转载 2019-12-13 11:18:59 · 3918 阅读 · 0 评论 -
C#与.NET的关系
C#与.NET的关系 信息来之:C#高级编程翻译 2017-01-15 18:52:06 · 711 阅读 · 0 评论 -
C#多线程与异步的区别
随着拥有多个硬线程CPU(超线程、双核)的普及,多线程和异步操作等并发程序设计方法也受到了更多的关注和讨论。本文主要是想与园中各位高手一同探讨一下如何使用并发来最大化程序的性能。多线程和异步操作的异同 多线程和异步操作两者都可以达到避免调用线程阻塞的目的,从而提高软件的可响应性。甚至有些时候我们就认为多线程和异步操作是等同的概念。但是,多线程和异步操作还是有一些区别的。而这些区别造成了使用多线程和转载 2017-02-07 10:33:14 · 435 阅读 · 0 评论 -
通过线程,HttpWebResponse,正则获取句子迷中的句子
之前一直在关注句子迷这个网站,在里面可以找到自己喜欢的名人的金典语录。 每一次都去打开,再去翻页查看太烦,有没有什么方法可以把网站中的句子直接抓出来,保存到本地txt文件中? 然后在网上查看了一些资料,自己动手写了一个控制台应用程序。注:代码存在点问题,多次发起请求,线程会被占用,目前没有解决;求救中具体实现方式:步骤1:通过HttpWebResponse发送一个请求,将整个HTML页面请求原创 2017-02-08 14:17:24 · 958 阅读 · 0 评论 -
C#取硬盘、CPU、主板、网卡的序号 ManagementObjectSearcher
在很多情况下,你可能都需要得到微机的硬件信息。比如:你想给你的软件加锁,不让别人随便访问。最有效的办法是获取CPU的序列号,然后让你的软件只能运行在有这样的CPU序列号的机器上。众所周知,CPU序列号是唯一的!因此,这样就可以为你的软件加锁了。powered by 25175.net另外一个需要硬盘信息的例子是:硬盘有几个分区,每个分区各有多少剩余空间。当你正在做一个多媒体应用程序的时候,你可能也需转载 2017-02-09 09:30:43 · 3300 阅读 · 0 评论 -
PerformanceCounter 基本介绍以及示例方法
一 PerformanceCounter 基本介绍1 简单介绍 表示 Windows NT 性能计数器组件 命名空间:System.Diagnostics 程序集:System(在 system.dll 中) 2 构造函数(只介绍本文要用到的) PerformanceCounter (String, String, String) 功能: 初始化 PerformanceCounte原创 2017-02-09 10:45:33 · 13488 阅读 · 2 评论 -
未能为 SSL/TLS 安全通道建立信任的解决办法
在通过 HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); req.Method = "GET"; HttpWebResponse sp = (HttpWebResponse)req.GetResponse();作处理时,有些输入有些URL会在Http转载 2017-02-09 13:57:51 · 13823 阅读 · 0 评论 -
基于C#的WEB服务器运行状态监测程序
每天监测网站是否正常运行,之前是一个一个打开,现在写一个程序来监测。步骤1.将文件配成XML格式方便读写,相对于数据库来说已操作。XmlDocument dom = new XmlDocument(); dom.Load(@"D:\ServerList.xml"); foreach (XmlElement ServerC in dom.Document原创 2017-02-09 14:31:41 · 3789 阅读 · 0 评论 -
强数据类型化
强数据类型化转载 2017-01-19 09:44:32 · 303 阅读 · 0 评论 -
C#语言编写代码逻辑
C#语言编写代码翻译 2017-01-19 13:39:35 · 1082 阅读 · 0 评论 -
c#读取XML
XML文件是一种常用的文件格式,例如WinForm里面的app.config以及Web程序中的web.config文件,还有许多重要的场所都有它的身影。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其转载 2017-02-10 14:19:47 · 3605 阅读 · 0 评论 -
逆变与协变详解
逆变(contravariant)与协变(covariant)是C#4新增的概念,许多书籍和博客都有讲解,我觉得都没有把它们讲清楚,搞明白了它们,可以更准确地去定义泛型委托和接口,这里我尝试画图详细解析逆变与协变。变的概念我们都知道.Net里或者说在OO的世界里,可以安全地把子类的引用赋给父类引用,例如://父类 = 子类string str = "string";object obj = st转载 2017-01-30 09:32:05 · 530 阅读 · 0 评论 -
C#后台发送HTTP请求
HttpResponse1.涵盖POST,GET方法using System;using System.Collections.Generic;using System.IO;using System.IO.Compression;using System.Net;using System.Net.Security;using System.Security.Cryptography.X翻译 2017-01-11 14:39:34 · 5899 阅读 · 0 评论 -
enum之Flags特性
[Flags]的微软解释是“指示可以将枚举作为位域(即一组标志)处理。”其实就是在编写枚举类型时,上面附上Flags特性后,用该枚举变量是既可以象整数一样进行按位的“|”或者按位的“&”操作了。 另外一个是在引用COM组件时使用,比如权限、执行状态等,都可以用一个int型保存到数据库中,C#中使用枚举可以处理这个问题。 private static void Main(string转载 2017-01-13 19:34:31 · 944 阅读 · 0 评论 -
栈
定义:栈是限定仅在表头进行插入和删除操作的线性表。要搞清楚这个概念,首先要明白”栈“原来的意思,如此才能把握本质。”栈“者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。 首先系统或者数据结构栈中数据内容的读取与插入(压入push和 弹出pop)是两回事!插入是增加数据,弹出是删除数据 ,这些操作只能从栈顶即最低地址作翻译 2017-01-13 14:32:13 · 407 阅读 · 0 评论 -
什么是面向对象,和面向过程的区别是什么
什么是面向对象,和面向过程的区别是什么最佳答案面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。 例如五子棋,面向过程的设计思路就是首先分析问题的步骤:开始游戏,黑子先走,绘制画面,判断输赢, 轮到白子,翻译 2017-01-11 18:11:30 · 437 阅读 · 0 评论 -
队列
队列简介队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。 队列的数据元素又称为队列元素。在队列中插入一个队列元素称为入队,从队列中删除一个队列元素成为出队。因为队列只允许在一段插入,在另一端删转载 2017-01-13 11:12:45 · 382 阅读 · 0 评论 -
面向对象的三个基本特征(讲解)
面向对象的三个基本特征是:封装、继承、多态。封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。翻译 2017-01-11 18:01:07 · 322 阅读 · 0 评论 -
.NET中代理服务器WebProxy的各种用法
因为涉及到代理的各种情况,WebRequest和WebProxy类的文档写的相当复杂,不但各个文档关注点不同,而且不同版本的同一文档也有小小的区别,网上也没有关于这个类的相关文章。于是乎这篇Blog是我钻研半天MSDN很久后总结并且花了一小时憋出来的,希望下面的内容能帮到大家。 (AcDown中也使用了相关的代码,有兴趣的可以找来看看【解析】.NET中代理服务器WebProxy的各种用法)直接进入转载 2017-01-11 17:25:56 · 6824 阅读 · 0 评论 -
DataTable转换成List<Model>
/// <summary>/// DataTable转成实体/// </summary>public static class Table2Model{ #region 公共方法(扩展DataTable) /// <summary> /// DataTable转换成T /// </summary> /// <typeparam name="T">实体类原创 2016-11-14 09:52:54 · 3227 阅读 · 0 评论 -
将图片从网站上下载到本地来
将图片从网站上下载到本地来 将网站上图片的地址传进来 创建web请求,并且获取图片 保存图片 释放资源 string saveRootPlace =”X:\NewTFS\”;//根目录 string ImageDirectory =doubanImage ;//图片保存文件夹 string saveImageFile =原创 2016-12-20 11:02:21 · 808 阅读 · 0 评论 -
阻止冒泡事件发生
问题:今天写代码的过程中,遇到一个新的问题,一个按钮事件已经封装好;需要在调用该按钮的之前先进行数据确认,满足情况下,再执行下面的方法,不然不执行下一个事件。需要点击“续借操作”之前,先进行借阅状态判断若是“借出成功”这可以续借,不然的话不允许续借。解决方案:取原“续借操作”click事件的下一个元素,对此进行新增事件操作,将其他事件进行阻止 1. “续借操作”click事件已封装好,针对的是黑原创 2016-12-29 11:34:33 · 537 阅读 · 0 评论 -
递归
一、什么是递归很多数据结构的定义都是根据递归性质来进行定义的,是因为这些结构固有的性质。递归是指某个函数直接或间接的调用自身。问题的求解过程就是划分成许多相同性质的子问题的求解,而小问题的求解过程可以很容易的求出,这些子问题的解就构成里原问题的解了。二、递归的几个特点递归式,就是如何将原问题划分成子问题。递归出口,递归终止的条件,即最小子问题的求解,可以允许多个出口。界函数,问题规模变化的函数翻译 2017-01-11 18:18:12 · 294 阅读 · 0 评论 -
C#获取web.config配置文件内容
1.ConfigurationManager提供对客户端应用程序配置文件的访问。其有两个属性1.ConnectionStrings 获取当前应用程序默认配置的 ConnectionStringsSection 数据。方法一:string myConn =System.Configuration.ConfigurationManager.ConnectionStrings["sqlConnection转载 2017-01-13 15:49:55 · 923 阅读 · 0 评论 -
c#面向对象
面向对象技术是目前流行的系统设计开发技术,它包括面向对象分析和面向对象程序设计。面向对象程序设计技术的提出,主要是为了解决传统程序设计方法——结构化程序设计所不能解决的代码重用问题。 面向对象的编程方法具有四个基本特征: 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。比原创 2017-01-11 17:35:04 · 236 阅读 · 0 评论 -
值类型,引用类型
值类型,引用类型翻译 2017-01-20 13:48:06 · 178 阅读 · 0 评论 -
循环语句:for;while;for while;foreach
循环语句:for;while;for while;foreach翻译 2017-01-20 14:12:22 · 547 阅读 · 0 评论 -
跳转语句:goto;break;continue;return
跳转语句:goto;break;continue;return翻译 2017-01-20 14:22:16 · 327 阅读 · 0 评论 -
C#预处理器指令
C#预处理器指令翻译 2017-01-20 15:35:45 · 248 阅读 · 0 评论 -
引用类型:ref,out
带ref的代码 static void Main(string[] args) { int c = 20; int d = add(ref c); Console.WriteLine(c); Console.ReadKey(); } public static翻译 2017-01-20 16:57:20 · 182 阅读 · 0 评论 -
基于.NET平台常用的框架整理
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到,就继续补充这篇日志,日积月累,就能形成一个自己的组件经验库。分布式缓存框架:Microsoft Velocity:微软自家分布式缓存服务框架。Memcahed:一套分布式的高速缓存系统,目前被许多网站使用转载 2017-02-11 12:19:45 · 1804 阅读 · 0 评论 -
弱类型和部分类
弱类型和部分类翻译 2017-01-22 15:37:07 · 325 阅读 · 0 评论 -
扩展方法
“扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。”这是msdn上说的,也就是你可以对String,Int,DataRow,DataTable等这些类型的基础上增加一个或多个方法,使用时不需要去修改或编译类型本身的代码。翻译 2017-01-22 16:06:08 · 164 阅读 · 0 评论 -
(c#) 销毁资源和释放内存
0. 什么是资源? .NET 框架中如何访问资源?所谓的资源就是程序中可利用的数据,譬如:字符串、图片和任何二进制数据,包括任何类型的文件。在面向对象的环境中,每一个类型都标识为某些程序所用的资源,要想使用这些资源,必须为相应的类型分配一定的内存空间。访问一个资源需要如下几个步骤:1)分配内存空间: 调用中间语言(IL)中的newobj指令(使用new操作符时,将产生newobj指令),为某个特定资转载 2017-02-13 09:49:17 · 6164 阅读 · 0 评论 -
派生类的构造函数
派生类的构造函数翻译 2017-01-22 17:55:54 · 199 阅读 · 0 评论 -
C#基础—不安全代码(unsafe code)
1.为何要有unsafe也许是为了实现CLR类型安全的目标吧,默认情况下,C#没有提供指针的使用算法,但是有些情况下也可能需要指针这样直接访问内存的东西(虽然目前我还没有用过),但是有时候程序员非常清楚程序的运行状况,需要使用指针直接访问内存以便于提高性能或者调试、监控程序运行的内存的使用状况,以便于采取相应的措施。还有一些情况是当我们需要调用外面DLL中的函数又不能使用DllImport 时,也需转载 2017-02-13 10:32:38 · 3455 阅读 · 1 评论 -
C#约束
C#约束 1.接口约束。例如,可以声明一个泛型类 MyGenericClass,这样,类型参数 T 就可以实现 IComparable 接口:public class MyGenericClass<T> where T:IComparable { }2.基类约束指出某个类型必须将指定的类作为基类(或者就是该类本身),才能用作该泛型类型的类型参数。 这样的约束一经使用,就必须出现在翻译 2017-01-23 11:21:16 · 2032 阅读 · 0 评论 -
C# Default使用
C# Default使用翻译 2017-01-23 11:00:04 · 572 阅读 · 0 评论 -
C# 异常类 Exception 枚举所有类型的异常
一、基础在C# 里,异常处理就是C# 为处理错误情况提供的一种机制。它为每种错误情况提供了定制的处理方式,并且把标识错误的代码与处理错误的代码分离开来。对.NET类来说,一般的 异常类System.Exception 派生于 System.Object。还有许多定义好的异常类(如:System.SystemException、System.ApplicationException等),他们又派生于转载 2017-02-13 15:40:03 · 5630 阅读 · 0 评论 -
C# 自定义异常的总结
在C#中所有的异常类型都继承自System.Exception,也就是说,System.Exception是所有异常类的基类. 总起来说,其派生类分为两种: 1. SystemException类: 所有的CLR提供的异常类型都是由SystemException派生。 2. ApplicationException类: 由用户程序引发,用于派生自定义的异常类型,一般不直接进行实例化。转载 2017-02-14 13:48:00 · 3098 阅读 · 0 评论