大家好,好久没有写博客了,最近一段时间工作也比较忙,不过我还是会在空余时间去学习一些东西。 微软在这个星期一,开放了VS2010和Framework4.0的Beta1版本的下载,所以我也花了1天的时间进行了下载和安装,因为系统现在是windows7,而且这次版本也是beta版本,所以把它安装在了虚拟机上,虽然只设置了1G的内存,不过跑起来还非常让人满意,没有像其他兄弟说的,很吃内存,很废cpu。 其实先前已经使用过CTP版本了,也一直对新特性在做研究,在第一时间下载了beta版本后,发现其实和CTP版本
对于C#里面的Foreach学过 语言的人都知道怎么用,但是其原理相信很多人和我一样都没有去深究。刚回顾泛型讲到枚举器让我联想到了Foreach的实现,所以进行一番探究,有什么不对或者错误的地方大家多多斧正。
逆向WP分享一 0x01.re4 首先我们先点开运行试玩一下,大意就是让你输入正确的用户名和密码就能拿到flag,接下来进入正题。 丢进IDA中,先shift+F12查看一下字符串(我们所需要的co
从《C#高级编程》了解到给线程传递参数有两种方式,一种方式是使用带ParameterizedThreadStart委托参数的Thread构造函数,另一种方式是创建一个自定义类,把线程的方法定义为实例的方法,这样就可以初始化实例的数据,之后启动线程。
0. 目录 C#6 新增特性目录 1. 老版本的代码 1 internal class Person 2 { 3 public string Name { get; set; } 4 public int Age { get; set; } 5 6 public override string ToString() 7 { 8 return string.Format("[name={0},age={1}]", Name, Age); 9
IL是.NET框架中间语言(Intermediate Language)的缩写。使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但此时编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL(Intermediate Language)的代码。
0. 目录 C#6 新增特性目录 1. 老版本的代码 1 private static void Main() 2 { 3 var dictionary = new Dictionary<int, string> { 4 { 1, "Value1" }, 5 { 2, "Value2" }, 6 { 3, "Value3" } 7 }; 8 } 早C#3中引入的集合初始化器,可是让我们用上面的语法来在声明一个字典或者集合的时候立即初始化一些项进
闭包即闭包是指可以包含自由(未绑定到特定对象)变量的代码块.表现出来是调用函数结束后,函数内的变量的生存周期拉长到调用者的生命。很多闭包实现成匿名函数(js也是表现成匿名函数的,其他的方法不清楚),3.0中引入了匿名函数,相应的也提供了闭包的支持。 闭包实例: class Program { static void Main(string[] args) { Action ss = bibao(); ss();
接上篇:30分钟?不需要,轻松读懂IL,这篇主要从IL入手来理解async/await的工作原理。 先简单介绍下async/await,这是.net 4.5引入的语法糖,配合Task使用可以非常优雅
高级语言之所以成为高级语言,编译器付出了很多。params在给我们带来方便的同时,编译器也是贡献不少。 实例代码: using System; public class Test { public static void Main() { Console.WriteLine("结果1"); say("hello","world"); Console.WriteLine("结果2");
前段时间突然想搞搞IL语言,于是在博客园中找到了包建强前辈关于IL的文章学习,并且在包前辈博客里看到了09年他与赵劼前辈关于是否有必要学习IL语言的争论,作为一个刚入此行业的新人,没有站在那个高度不敢去评论什么,并且我的引路教员在知道我学IL时就跟我说学习IL还不如学习汇编,IL语言就是一堆指令,谁背的多谁就越精通,我那个教员说的也不错,IL语言就是一堆指令,或许就是站的角度不同,我教员他不止局限于.NET,对C++和汇编都有一定研究,但是现在我还是只局限于.NET体系,学好.NET我感觉对于CIL和CLR一定得有一定的了解。所以我个人的观点是在.NET平台干活的人还是有必要学习学习IL的。现在IL我只是局限于刚学习阶段,所以想写下博客来记录我的学习记录
switch 语句大家都不陌生,平时在遇到较多相同的 if 语句判断时就会想到他,举个简单的例子:
事件概述 CLR的事件模型建立在委托的机制之上。定义事件成员的类型允许类型(或者类型的实例)在某些特定事件发生时通知其他对象,事件为类型提供了一下三种能力: 1允许对象登记该事件 2允许对象注销该事件 3允许定义事件的对象维持一个登记对象的集合,并在某些特定的事件反生时通知这些对象 下面是根据一个上课的场景解释事件的原理【上课铃响,老师讲课,学生进教室听课】。定义一个RingManager类管理上课铃声,定义一个SchoolBell【上课铃响】的事件,Teacher和Student类型登记该事件。当Teac
1、将包含多个类型的源代码文件转换为可以部署的文件。有如下Program.cs的文件,代码如下: public sealed class Program { public static void Main(string[] args) { System.Console.WriteLine("Hello World"); System.Console.ReadKey(); } } 该应用程序实现了打
现象是设置 WPF 开机启动的时候,概率界面不显示,进程已经起来,同时占用内存极小。通过 dump 或附加调试可以看到主进程带等待触摸线程的回应
.NET 高级调试的第二篇文章,第一篇文章《.NET 高级调试:认识调试工具》记录了自己学习 Net 高级调试的第一步,认识一些调试工具,有了工具的倚仗,我们开始仗剑走天涯了,开始Net高级调试正式的征程了。
0. 目录 C#6 新增特性目录 1. 老版本代码 1 internal class Person 2 { 3 public string Name { get; private set; } 4 public int Age { get; private set; } 5 6 public Person(string name,int age) 7 { 8 Name = name; 9 Age = age; 10
使用C#的猿人或多或少都会对微软的IL反编译工具(ildasm.exe)有所认识。我最早接触到这工具是公司同事使用他反编译exe程序,进行研读和修改。感觉他还是很强大。 IL是微软平台上的一门中间语言,我们常写的C#代码在编译器中都会自动转换成IL,然后在由即时编译器(JIT Compiler)转化机器码,最后被CPU执行。ildasm.exe反编译工具将IL汇编成可跨平台可执行的(pe)文件。可供我们了解别人代码和修改。有了他我们看待问题可以不用停留在编辑器层面,可深入中间层。
1.DEMO static void Main() { var Num = 6; var str = "乱舞春秋"; var dou = 9.25d; Console.WriteLine(Num); Console.WriteLine(str); Console.WriteLine(dou); } var关键字,用来声明并初始化局部变量。编译器根据=右边的语句推断出变量实际的类型。 所以使用var的要求就是右边的语句必须可以让编译器推断出实际的类型。所以=号右
1.对象初始化器 首先声明一个类Person: public class Person { public string Name { get; set; } public int Age { get; set; } } 初始化它并调用它: static void Main() { Person person = new Person { Name = "乱舞春秋", Age = 22 }; Console.WriteLine("姓名:{0}",person.Name);
1. 添加两个textbox,第一个textbox从XMAL资源中获取字符串,第二个textbox从C#中获取资源
--------------------------------------------------------------------------
GitHub:https://github.com/kwwwvagaa/NetWinformControl
从4.0版本开始.NET引入并行编程库,用户能够通过这个库快捷的开发并行计算和并行任务处理的程序。在4.5版本中.NET又引入了Async和Await两个新的关键字,在语言层面对并行编程给予进一步的支持,使得用户能以一种简洁直观的方式实现并行编程。因为在很多文档里针对Async和Await这两个关键字的使用都被称为异步编程,为了更符合大众的阅读习惯,我们使用异步编程这个叫法,意思上和并行编程完全一样。
面试出现频率:虽然很重要但不怎么出现,可能会考你定义,以及程序集包括什么,然后自然的话题就跑到反射上去了。
本文将通过引出几个问题来,并且通过例子来剖析C#中的委托以及用法,做抛砖引玉的作用
中间语言,又称(IL语言)。充当Clr与.net 平台的中间语言,比如用C#编写程序,编译器首先是把C#代码转译成IL语言,最终由Clr解释执行,下面我们学习下IL语言。
本文告诉大家一些 ValueTuple 的原理,避免在使用出现和期望不相同的值。ValueTuple 是 C# 7 的语法糖,如果使用的 .net Framework 是 4.7 以前,那么需要使用 Nuget 安装System.ValueTuple
Silverlight 2 包含一个 CLR,但并不是其他 .NET 应用程序和程序集使用的 CLR. Silverlight CLR 也称为 CoreCLR,在设计时充分考虑了不同用途。CoreCLR 专为跨平台互操作性而设计,可与 CLR 同时运行并支持不同的安全模型以及不同版本的基础类库。 CoreCLR 是 Silverlight 使用的虚拟机。它类似于为 .NET Framework 2.0 及更高版本提供强大功能的 CLR,也包含相似的类型加载和垃圾收集 (GC) 系统。 CoreCLR
使用 MonoTouch 做 iOS 开发, 由于 MonoDevelop 和 VS 2010 相比, 功能差的太多, 通常会相应的建立两个项目, 一个是 MonoDevelop 项目, 在 OSX 下使用, 一个是 VS 项目, 在 Windows 下使用, 在 Windows 系统下进行编码, 之后再在 OSX 下进行调试。 不过, 默认的 VS 项目在添加 MonoTouch 项目的 CS 源文件之后, 经常编译出错, 而且如果安装了 Resharper 之类的插件之话, 也会得到一大堆错误信息, 令人感觉非常恶心。 经过一番研究发现是因为 VS 不能引用 MonoTouch 的几个核心 dll 文件导致的, 包括 mscorlib.dll , System.dll , System.Core.dll 等, 找到原因之后, 对应的解决方法就有了。
WPF介绍了一个非常方便的概念:把数据储存为一种资源,无论是本地控件、本地窗口还是全局应用。数据可以是任何你想要的东西,从实际的信息到WPF控件的层次结构都行。这非常有用,你可以把数据放在一个地方,然后在其他地方调用它。
随着应用程序的复杂度不断上升,要想将好的设计思想稳定的落实到线上,我们需要具备解决问题的能力。需要具备对运行时的错误进行定位且快速的解决它的能力。本篇文章我将分享一下我对.NET应用程序调试方面的学习和使用总结。
通过dnu restore也不管用。查看一下运行环境吧(好像我尝试过升级dnvm update-self):
背景 近期在写日志系统,需要在运行时在函数内注入日志记录,并附带函数信息,这时就想到用Aop注入的方式。 AOP分动态注入和静态注入两种注入的方式。 动态注入方式 利用Remoting的ContextBoundObject或MarshalByRefObject。 动态代理(反射),很多AOP框架都用这种方式。 MVC的filter,也是反射。 第一种性能太差,必须继承基类等,所以不考虑。 第二种为了记日志,大量动态生成代理类,性能损耗不小,不建议生产环节推荐。 第三种MVC只能进行UI层的拦截,其他层需要实
最近产品发布大版本补丁更新,一商超客户升级后,反馈系统经常奔溃,导致超市的收银系统无法正常收银,现场排队付款的顾客更是抱怨声声。为了缓解现场的情况, 客户都是手动回收IIS应用程序池才能解决。
转载来源: https://www.cnblogs.com/sheng-jie/p/9503650.html
1. 泛型概述 泛型是一种类型的多态;比如当我们写一个栈或者队列的时候,需要指定其数据类型,int一份代码,string一份代码,object的一份代码, 这些代码除了数据类型不同之外其他大部分都是相同的,根据设计模式的思想,抽象出来变化点封装它, 共同的部分作为共用的代码。这里的变化点就是类型了,共同部分就是算法相同,所以就把类型抽象化, 于是乎泛型问世&[个人理解]。 C#泛型由CLR在运行时支持,这使得泛型可以在CLR支持的各种语言上无缝集合; C#泛型代码在被编译[第一次编译]为IL代码和元数据时[
该篇文章主要分享了作者在使用.NET进行应用程序调试方面的一些经验和技巧,包括异常处理、调试工具、代码调试、性能优化、内存泄漏检测、远程调试、日志记录、死锁、线程调试、Visual Studio调试、F5负载均衡和服务器端应用程序等方面的内容。作者还介绍了如何使用Visual Studio调试.NET应用程序,并提供了详细的步骤和截图。此外,作者还介绍了一些常用的.NET调试工具,如Fiddler、Wireshark、Process Monitor等,以及如何使用这些工具进行网络调试、进程监控、文件读写等方面的操作。最后,作者还分享了一些调试.NET应用程序的经验和技巧,包括如何识别和解决死锁、内存泄漏、性能问题等。
对于在.NET框架(.NET Framework)下进行开发的程序员来说,无法回避的一个问题就是:什么是.NET框架?它包含了哪些内容?为开发程序提供了哪些支持?很多朋友对这类个问题的第一反应可能是.NET框架所提供的庞大类库及编写代码所采用的C#语言,实际上远不止这些。
在《.NET Core跨平台的奥秘[上篇]:历史的枷锁》中我们谈到:由于.NET是建立在CLI这一标准的规范之上,所以它天生就具有了“跨平台”的基因。在微软发布了第一个针对桌面和服务器平台的.NET Framework之后,它开始 “乐此不疲” 地对这个完整版的.NET Framework进行不同范围和层次的 “阉割” ,进而造就了像Windows Phone、Windows Store、Silverlight和.NET Micro Framework的压缩版的.NET Framework。从这个意义上讲,
将详细介绍另一个 DG 绕过,而不是禁用整个策略。在这种情况下,它利用的根本原因与我之前披露的相同,.NET 通过序列化从字节数组加载不受信任的代码,但有一个有趣的转折(*spoiler*它没有使用BinaryFormatter ,主要是)。因此,我认为披露信息并没有太大的不同。MS,或者至少是 .NET 团队(嗨,Barry),不太可能很快解决 DG 和 .NET 之间的根本不兼容问题。
Mono,作为.NET运行库的开源实现,正在将微软的技术带到未曾预料到的地方,包括iPhone,Android和Wii。 根据Novell公司的首席Mono开发者Miguel de Icaza称,Apple的App Store中有多个应用程序是基于Mono。 这可能会让那些熟悉苹果应用程序限制政策的人感到意外,因为苹果公司严格禁止开发者使用解释语言和第三方运行环境——在很大程度上就将.NET和Java之类技术排除在外。 静态编译(Static compilation)是一道特别的沙司,正是它使
1.匿名方法应用和机制 先看一段代码(C#1.0): 1 //这里加了参数<为了说明delegate关键字后面的参数列表> 2 public delegate void MyDelegate(object sender, EventArgs e); 3 class Program 4 { 5 static void Main() 6 { 7 new Program().function(); 8 } 9 private void functi
发布于 2017-11-06 15:24 更新于 2018-02-19 22:39
半年之前,PM让我在部门内部进行一次关于“内存泄露”的专题分享,我为此准备了一份PPT。今天无意中将其翻出来,觉得里面提到的关于CLR下关于内存管理部分的内存还有点意思。为此,今天按照PPT的内容写了一篇文章。本篇文章不会在讨论那些我们熟悉的话题,比如“值类型引用类型具有怎样的区别?”、“垃圾回收分为几个步骤?”、“Finalizer和Dispose有何不同”、等等,而是讨论一些不同的内容。整篇文章分上下两篇,上篇主要谈论的是“程序集(Assembly)和应用程序域(AppDomain)”。也许有的地方说的
在VBA中,有一些用于存储数据的对象,例如字典、集合、数组、ActiveX组合框、ActiveX列表框、用户窗体组合框、用户窗体列表框、ArrayList等,SortedList也是其中的一种,它是一个集合对象,可用于存储任意类型的数据,包括数字、字符串、日期、数组、单元格区域、变量和对象。
领取专属 10元无门槛券
手把手带您无忧上云