
C#
文章平均质量分 78
木鱼-
过一天就要进步一点,而且不知道也会更多,还有每天都会忘记一点。所以每天还得做功课
展开
-
C# Lock 解读
最近在研究.NET分布式缓存代码,正好涉及Lock,看了网上的文章,总结了一些Lock相关的知识,供大家一起学习参考。 一、Lock定义 lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。原创 2012-08-19 15:23:30 · 563 阅读 · 0 评论 -
C# Mutex 和 monitor的区别
Monitor和Lock多用于锁定被调用端,而Mutex则多用锁定调用端。Framework中已经为我们提供了三个加锁的机制,分别是Monitor类、Lock关键字和Mutex类。其中Lock关键词用法比较简单,Monitor类和Lock的用法差不多。这两个都是锁定数据或是锁定被调用的函数。而Mutex则多用于锁定多线程间的同步调用。简单的说,Monitor和Lock多用于锁定被调用端,而Mu原创 2012-08-17 16:39:03 · 2877 阅读 · 0 评论 -
表单身份验证概述
在上一篇教程中 ,我们讨论了ASP.NET 提供的各种类型的身份验证、授权和用户帐户。在本教程中,我们将从讨论转向实现,特别地,我们将探讨表单身份验证的实现。我们在本教程中开始构建的Web应用程序将在后续的教程中逐步完善,从简单的表单身份验证到成员资格和角色。本文首先深入探讨表单身份验证流程,我们在前一教程中就接触过该主题。然后,我们将创建一个ASP.NET网站,通过它来阐述表单身份验证的各个概念。转载 2024-03-29 16:43:07 · 125 阅读 · 0 评论 -
.NET 中的 async/await 异步编程
前言最近在学习Web Api框架的时候接触到了async/await,这个特性是.NET 4.5引入的,由于之前对于异步编程不是很了解,所以花费了一些时间学习一下相关的知识,并整理成这篇博客,如果在阅读的过程中发现不对的地方,欢迎大家指正。同步编程与异步编程通常情况下,我们写的C#代码就是同步的,运行在同一个线程中,从程序的第一行代码到最后一句代码顺序执行。而异步编程的核心是使用多线程转载 2016-03-31 09:29:30 · 598 阅读 · 0 评论 -
C#中对象的销毁有三种方式Finalize,Dispose,GC。请大虾们描述三种方式的区别啊?/java中的析构函数
MSDN建议按照下面的模式实现IDisposable接口: 1 public class Foo: IDisposable2 {3 public void Dispose()4 {5 Dispose(true);6 GC.SuppressFinalize(this);7 }8 9 protected virtual v转载 2016-06-24 08:45:17 · 3752 阅读 · 0 评论 -
C#操作XML
摘要:1..NET对读写XML文件的支撑 (1)System.Xml定名空间 System.Xml定名空间为处置惩罚XML供应基于规范的支撑,个中供应了很多治理XML文档战XML流体式格局的类,借供应了一些类(比方XmlDataDocument)则是供应了1..NET对读写XML文件的支持(1)System.Xml命名空间 System.Xml命名空间为处理XML提供基于标准转载 2016-05-21 13:41:19 · 1265 阅读 · 0 评论 -
SAX、 StAX、 DOM(dom4j优于jdom)处理XML
一、SAX处理XML1.SAX(Simple Access for XML)API:基于事件驱动的XML处理模型,是一种推模式解析(push-parsing) XML文档的API。解析程序按读入xml文档事件的顺序解析数据,同时基于所选择的结构调用回调处理函数。2.SAX处理模型的工作步骤:(1).实现一个扩展DefaultHandler的类,并为每种类型的结构定义回调方法。(转载 2016-05-21 09:19:17 · 899 阅读 · 0 评论 -
C# Winform中的DataGridView中行定位-滚动条定位
foreach (DataGridViewRow dgvr in dgvFunctionList.Rows) { DataRow dr = (DataRow)dgvr.Tag; if ( dr["funcn"].ToString().ToLower().Contains("sw"))转载 2016-06-07 13:49:53 · 6646 阅读 · 1 评论 -
关联、组合、聚合、依赖关系比较
http://blog.youkuaiyun.com/maybehelios/article/details/2038685类之间的关系1. 种类: Generalization(泛化),Dependency(依赖关系)、Association(关联关系)、Aggregation(聚合关系)、Composition(合成关系)。2. 其中Aggregation(聚合关系)、Compo转载 2016-05-07 09:04:25 · 439 阅读 · 0 评论 -
excel C# 报表制作汇总
1. 单击“添加引用”对话框的“COM”选项卡,找到“Microsoft Excel 11 Object Library”,按“确定”。注意:Microsoft Excel 11 Object Library中Excel 11 的版本与安装的OFFICE版本有关。在编程之前还需要引入命名空间using Microsoft.Office.Interop.Excel;注意:有的机器上需要用转载 2016-08-03 10:23:21 · 2393 阅读 · 0 评论 -
C# where用法
C# where子句where 子句用于指定类型约束,这些约束可以作为泛型声明中定义的类型参数的变量。1.接口约束。例如,可以声明一个泛型类 MyGenericClass,这样,类型参数T 就可以实现 IComparable 接口:public class MyGenericClassT>where T:IComparable转载 2013-04-21 20:04:06 · 1606 阅读 · 0 评论 -
c# 中 EventHandler<TEventArgs>的 异步调用
在实现CSharpServer框架时,需要写一个EventDispatcherUtil用于触发某个事件。使用c# 内置的EventHandler直接调用handler.BeginInvoke可以异步调用EventHandler里的调用链的监听的事件方法但如果是自定义的EventHandler 类型调用BeginInvoke会产生异常(该委托必须有一个目标),所以需要自行实现EventHan转载 2016-05-05 13:56:51 · 3712 阅读 · 0 评论 -
重温C#2.0之委托(delegate,Delegate,MulticastDelegate)与事件(event)区别
http://blog.sina.com.cn/s/blog_71f2bd7f0100qv6e.html一 delegate、Delegate、MulticastDelegate的区别1 Delegate:是一个抽象基类,它引用静态方法或引用类实例及该类的实例方法。然而,只有系统和编译器可以显式地从Delegate 类派生出委托类型。2MulticastDelega转载 2016-05-05 13:38:53 · 2688 阅读 · 0 评论 -
C#引用传递
学过C#的人都知道,通过值或通过引用,值类型和引用类型都可以作为方法参数传递。在C#中,不管是值类型或者是引用类型,所有方法参数在默认情况下是通过值传递的。1)通过值传递值类型在通过值传递作为方法参数的变量时,传递给方法的是数据副本。在方法中对该数据的任何修改都不会对初始值有任何影响。C#如下代码:[csharp] view plain copy转载 2016-04-19 08:59:30 · 657 阅读 · 1 评论 -
浅谈AsyncState与AsyncDelegate使用的异同
对于AsyncState来说,其MSDN的解释为:得到BeginInvoke方法的最后一个参数。而对于AsyncDelegate来说,其MSDN的解释为:得到异步调用的委托对象。也就是异步调用的委托源。对于委托的异步调用来说,其BeginInvoke函数无非包括以下内容,BeginInvoke(调用参数,回调函数,Object对象)如果想利用AsyncState来还原对象的话,这里的Obj转载 2016-03-31 09:39:27 · 2103 阅读 · 0 评论 -
多个TrackBar控件联动设置百分比
http://blog.youkuaiyun.com/luols/article/details/22782929我们有时候需要设计一个比重设置,当然几个比重合计之和肯定要100%,就这么一个简单的需求,换成是你,你会如何设计?个数不确定,另一个则是要保证100%。设计这样的方案困扰了我好几天,最开始设计了几个下拉框,但因操作不方便被痛批好几次,我不知道有没现成的资源可用,山穷水尽后想到T转载 2016-02-25 10:19:16 · 1290 阅读 · 0 评论 -
C# 集合类 Array,Arraylist,List,Hashtable,Dictionary,Stack,Queue学习资...
我们用的比较多的非泛型集合类主要有 ArrayList类 和HashTable类。我们经常用HashTable 来存储将要写入到数据库或者返回的信息,在这之间要不断的进行类型的转化,增加了系统装箱和拆箱的负担,如果我们操纵的数据类型相对确定的化 用Dictionary集合类来存储数据就方便多了,例如我们需要在电子商务网站中存储用户的购物车信息(商品名,对应的商品个数)时,完全可以用Dictio转载 2012-07-08 09:18:09 · 797 阅读 · 0 评论 -
C#中Collection,List和ArrayList的区别(转)
在C# .net 2.0 库中,集合类就是在System、System.Collections、System.Collections.Generic和 System.Collections.ObjectModel命名空间下的类,包括Collection, KeyedCollection, ReadOnlyCollection, List, Array,Stack, Queue和ArrayList。转载 2016-03-23 13:56:56 · 3191 阅读 · 0 评论 -
c# XML和实体类之间相互转换(序列化和反序列化)
我们需要在XML与实体类,DataTable,List之间进行转换,下面是XmlUtil类,该类来自网络并稍加修改。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.IO;using System.Dat转载 2016-03-01 09:39:30 · 9969 阅读 · 0 评论 -
C#设置WinForm快捷键
1、Alt+*(按钮快捷键)按钮快捷键也为最常用快捷键,其设置也故为简单。在大家给button、label、menuStrip等其他控件的Text属性指定名称时,在其后面加上‘&’然后在加上一个指定字母即可。如:确定(&D),(Alt+D)调用。如指定多个字母,则第一个为快捷键。如:确定(&OK),(Alt+O)调用;文件(&Fill),(Alt+F)调用。2、Ctrl+*及其他组合键转载 2016-03-25 17:44:55 · 3398 阅读 · 0 评论 -
C#集合类型大盘点
集合是.NET FCL(Framework Class Library)中很重要的一部分,也是我们开发当中最常用到的功能之一,几乎是无处不在。俗话说知其然,知其所以然,平常看到IEnumerable,IEnumerator,ICollection是不是知道他们之间各自的区别?除了List和Dictionary以外,你还用过哪些其它的集合类?废话少说,今天我们就来看一些这些定义集合类的接口以及他们的转载 2016-03-29 09:42:39 · 571 阅读 · 1 评论 -
C#集合类详解,Hashtable 和 SortedList 类,Dictionary 和 SortedLi,Array ,ArrayList ,List ,Stack,SortedDictionar
集合类概述集合类具有以下特点:集合类定义为 System.Collections 或 System.Collections.Generic 命名空间的一部分。 大多数集合类都派生自 ICollection 、 IComparer 、 IEnumerable 、 IList 、 IDictionary 和 IDictionaryEnumerator 接口以及它们的等效泛型接口转载 2016-03-29 09:56:02 · 1395 阅读 · 0 评论 -
C#中的引用传递、值传递。
C#中的引用传递、值传递。一、传递参数 既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员(方法、属性、索引器、运算符和构造函数)更改参数的值,并保持该更改。二、传递值类型参数 值类型变量直接包含其数据,这与引用类型变量不同,后者包含对其数据的引用。因此,向方法传递值类型变量意味着向方法传递变量的一个副本。方法内发生的对参数的更改对该变量中存储的原始数据无任何影转载 2016-05-10 09:32:02 · 1019 阅读 · 0 评论 -
.net破解一(反编译,反混淆-剥壳)
http://www.cnblogs.com/jio92/p/de4dot.html大家好,前段时间做数据分析,需要解析对方数据,而数据文件是对方公司内部的生成方式,完全不知道它是怎么生成的. 不过还好能拿到客户端(正好是C#开发)所以第一件事就是用Reflector编译,但是没有想象的那么简单,看看反编译结果代码已经混淆了,方法体内部处理也看不见 ,怎么办喃?转载 2016-09-20 14:12:27 · 23348 阅读 · 1 评论 -
C# 反编译-Reflector 反混淆-De4Dot 修改dll/exe代码-reflexil
反编译工具 Reflector 破解版下载地址:http://pan.baidu.com/s/15UwJo 使用方法:略反混淆工具De4Dot 开源软件 下载地址http://pan.baidu.com/s/1d4fLt 使用方法: 参见:http://www.cnblogs.com/jio92/p/de4dot.html修改转载 2016-09-20 14:16:32 · 5555 阅读 · 1 评论 -
Lambda表达式
一、什么时候使用Lambda表达式总的来说,Lambda 表达式可以用在任何需要使用匿名方法,或是代理的地方。编译器会将Lambda表达式编译为标准的匿名方法(可以使用ildasm.exe or reflector.exe得到确认)。比如: Listint> evenNumbers = list.FindAll(i => (i%2) == 0);被编译为List转载 2017-09-20 15:13:51 · 375 阅读 · 0 评论 -
Lambda 表达式(C# 编程指南)
“Lambda 表达式”是一个匿名函数,它可以包含表达式和语句,并且可用于创建委托或表达式树类型。 所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。 该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。 Lambda 表达式 x => x * x 读作“x goes to x times x”。可以将此表达式分配给委托类型,转载 2017-09-20 15:16:03 · 625 阅读 · 0 评论 -
深入理解 C# 协变和逆变
msdn 解释如下: “协变”是指能够使用与原始指定的派生类型相比,派生程度更大的类型。 “逆变”则是指能够使用派生程度更小的类型。 解释的很正确,大致就是这样,不过不够直白。 直白的理解: “协变”->”和谐的变”->”很自然的变化”->string->object :协变。 “逆变”->”逆常的变”->”不正常的变化”->object->string 逆变。 上面是转载 2018-01-22 11:26:53 · 547 阅读 · 0 评论 -
C# 方法中的this参数
https://blog.youkuaiyun.com/zhuzhu837_1/article/details/8448083先看下面的代码:public static class StringExtension{ public staticvoid Foo(this string s) { Console.WriteLine("Foo invoked for {0}",s); }}为什么这里会有一个thi...转载 2018-04-19 10:45:54 · 2511 阅读 · 0 评论 -
Invoke和BeginInvoke理解
在Invoke或者BeginInvoke的使用中无一例外地使用了委托Delegate,至于委托的本质请参考我的另一随笔:对.net事件的看法。一、为什么Control类提供了Invoke和BeginInvoke机制?关于这个问题的最主要的原因已经是dotnet程序员众所周知的,我在此费点笔墨再次记录到自己的日志,以便日后提醒一下自己。1、windows程序消息机制Windows GUI程序是基于消...转载 2018-05-25 09:47:55 · 229 阅读 · 0 评论 -
(WinForm)TreeView的节点位置转换屏幕坐标,节点高亮显示问题的解决方案
(WinForm)TreeView的节点位置转换屏幕坐标如果我可以确定该节点是树中的第几个节点,那么怎么把知道它的屏幕坐标啊?因为可能有滚动条,不知道treeview中确定滚动条的偏移的是哪个。望高人指点! ------解决方案--------------------如下得到一个树节点对应的屏幕坐标: TreeNode node = this.treeView1.SelectedNode; Sys...转载 2018-05-28 15:12:05 · 1592 阅读 · 0 评论 -
C#winform程序窗口全屏是否遮盖任务栏问题
在作winform程序时遇到窗口如果全屏时,遮盖任务栏的问题,从网上搜到如下解决办法,与各位共享。以下代码本人都试过,没问题: 1. 执行如下按钮事件 private void btnFormMax_Click(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Maximized) {...转载 2018-05-31 09:55:17 · 1878 阅读 · 0 评论 -
Lambda表达式学习
项目里面需要经常对一系列同类型集合进行操作,如对集合进行增加元素,删除集合的指定索引的元素等等.我们可以使用ArrayList来进行.如 ArrayList stringArrayList=newArrayList();stringArrayList.Add("大家好");stringArrayList.Add("你们好");stringArrayList.Add("同转载 2017-09-20 15:08:13 · 301 阅读 · 0 评论 -
Form身份验证基本原理
转载自:http://blog.youkuaiyun.com/lulu_jiang/article/details/5661857先说说Form身份验证思路:假设用户要浏览需要权限的页面,此时,安全机制先启动,检查当前用户请求是否持有用户票据的Cookie如此Cookie存在:解析Cookie中的票据信息,获得用户角色,创建用户标识否则:认为用户无权浏览该页面,跳转至登入页面,转载 2017-08-07 11:23:45 · 1448 阅读 · 0 评论 -
全面解读HTTP Cookie
今天webryan给team做了一个关于HTTP cookie的分享,从各个方面给大家介绍一下大家耳熟能详的Cookie。主要是翻了维基百科的很多内容,因为维基百科的逻辑实在是很清晰:),ppt就不分享了,把原始的草稿贴出来给大家。欢迎批评指正。HTTP Cookie:Cookie通常也叫做网站cookie,浏览器cookie或者http cookie,是保存在用户浏览器端的,并在发出ht转载 2016-10-15 09:02:18 · 1387 阅读 · 0 评论 -
使用RestSharp 库消费Restful Service
现在互联网上的服务接口都是Restful的,SOAP的Service已经不是主流。.NET/Mono下如何消费Restful Service呢,再也没有了方便的Visual Studio的方便生产代理的工具了,你还在用HttpWebRequest 自己封装吗?Restful Service还有授权问题,自己写出来的代码是不是很不优雅?通常Restful Service返回的数据格式是XML或者Js转载 2015-06-07 11:15:08 · 3186 阅读 · 0 评论 -
C# 中的 == 和 equals()有什么区别?/java中==和equals和hashCode的理解
intage = 25; short newAge = 25; Console.WriteLine(age == newAge); //true Console.WriteLine(newAge.Equals(age));//false Console.ReadLine();i转载 2015-04-06 15:39:08 · 929 阅读 · 0 评论 -
HashMap和Hashtable的区别
HashMap和Hashtable的区别导读:1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而hashtable不允许。 2 HashTable是线程安全的一个Collection转载 2014-04-23 10:11:30 · 579 阅读 · 0 评论 -
HTTP cookies 详解
当一个cookie存在,并且可选条件允许的话,该cookie的值会在接下来的每个请求中被发送至服务器。cookie的值被存储在名为Cookie的HTTP消息头中,并且只包含了cookie的值,其它的选项全部被去除,在cookie被禁用时,cookie通过http消息头中传递,在不禁用时,通过URL地址后面带cookie值传递(个人理解)HTTP cookies,通常又称作"转载 2016-12-16 09:44:41 · 568 阅读 · 0 评论 -
文件后缀与Mime类型对照表/由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。如果应下载文件,请添加 MIME 映射。
//文档文件类型的 .ai application/postscript .eps application/postscript .exe application/octet-stream .doc application/vnd.ms-word .xls application/vnd.ms-excel .ppt application/vnd.转载 2017-02-23 10:21:22 · 883 阅读 · 0 评论