Welcome 微信登录

首页 / 软件开发 / C#

用C#实现一个编译器

用C#实现一个编译器

用C#实现一个编译器2013-11-13 cnblogs BIT祝威前一阵做了个编译器(仅词法分析、语法分析、部分语义分析,所以说是前端),拿来分享一下,如有错 误,欢迎批评指教!整个代码库具有如下功能:提供编译器所需基础数据结构、计算流程框架 类,可供继承使用;提供基础数据结构的可视化控件;提供类似YACC的词法分析器、语法分析 器自动生成功能;提供Winform程序,集成和扩展上述功能,方便研究和应用。本文及其后续 系列将逐步给出所有工程源代码(vis...
C#静态构造函数与抽象类构造函数的面试题

C#静态构造函数与抽象类构造函数的面试题

C#静态构造函数与抽象类构造函数的面试题2013-11-13 博客园 alert(dong)前段时间找工作,去面试碰到了两道关于C#构造函数的题目,首先来看静态构造函数的题目如下(原题不 是如此,但类似,因为实在记不住那题目的样子了,第二题也是):class Base{static Base(){Console.WriteLine("Static Base");}public Base(){Console.WriteLine("...
c#运算符as和is的用法

c#运算符as和is的用法

c#运算符as和is的用法2013-11-13as 运算符类似于类型转换,所不同的是,当转换失败时,as运算符将产生空,而不是引发异常。在形式上,这种形式的表达式:expression_r as typeas运算符只执行引用转换和装箱转换。as运算符无法执行其他转换,如用户定义的转换,这类转换应使用case表达式来代替其执行。关于is的其实也差不多,只是IS不会帮你进行任何的转换。所以需要自已进行显示转换。is操作符进行转换,它自动检查时局是否和类型兼容,...
C#矩形圆角绘制改进版

C#矩形圆角绘制改进版

C#矩形圆角绘制改进版2013-11-13一、前言上一篇绘制矩形圆角的方式不够完善,感觉写的太过于复杂,将简单的问题复杂化了,本文对此进行了相应的改进,增强对各个圆角的半径的控制。绘制后的圆角效果图如下:二、圆角半径设计对于矩行而言,圆角分为左上角、右上角、左下角和右下角。每一个角都会存在相应的半径,用于控制每一个圆角的绘制。设计如下:public struct ArcRadius{private int _rightBottom;private int ...
C# GDI+如何绘制矩行的圆角

C# GDI+如何绘制矩行的圆角

C# GDI+如何绘制矩行的圆角2013-11-13一、前言本文主要介绍C# GDI+如何绘制矩行的圆角,其中涉及到如何使用位操作来处理组合的技巧。GDI+的本质在于,它能够替代开发人员实现与显示器及其它外部设备的交互。对于控件美化而言,需要达到自己期望的效果,GDI+必不可少。绘制后的圆角效果图如下:二、圆角枚举与相应组合处理设计对于矩行而言,圆角分为左上角、右上角、左下角和右下角。组合情况就分为无圆角、一个圆角、二个圆角、三个圆角以及四个圆角。枚举需要...
C#中两种方式将Xml匹配为对象集合

C#中两种方式将Xml匹配为对象集合

C#中两种方式将Xml匹配为对象集合2013-11-13一、前言上一篇随笔主要将实体转换成相应的Xml或者Xml对象,未考虑到属性的Attribute特性,以后有时间再整理一下。本文中的Xml匹配涉及到类的特性和属性的特性,并且对该类的匹配进行了相应的优化,尽量将反射引起的性能问题降低最低(其实,对于对象数量不是很多的Xml匹配,性能是可以忽略不计的)。二、类图设计主要思路为:通过反射将与类名的节点匹配,然后匹配属性(属性特性名称或者属性名称)值,设计图如...
C#中实体集合和实体转换成相应的string、XDocument、XElement、XDocument

C#中实体集合和实体转换成相应的string、XDocument、XElement、XDocument

C#中实体集合和实体转换成相应的string、XDocument、XElement、XDocument2013-11-13一、前言上篇随笔主要是针对于Xml的特性Attribute与实体之间的匹配与转换。该篇随笔主要内容为将对象转换成相应的Xml以及XElement。这2篇随笔以不同的方式对Xml进行转换与匹配,每种匹配都采用不同的角度进行操作。本文主要为对象实体的转换,下篇侧重于Xml的匹配。二、Xml转换2.1 实体集合转换Xml实体集合转换Xml的方...
C#中XmlAttribute与实体的转换和匹配方案

C#中XmlAttribute与实体的转换和匹配方案

C#中XmlAttribute与实体的转换和匹配方案2013-11-13一、前言可扩展标记语言 (XML) 是具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML是用来存储数据的,重在数据本身。本文中的代码是几个月前整理的,最近几个月的时间很少写随笔,除了工作以外,主要还是忙于整理自己的框架。这篇随笔主要是针对于XML的特性Attribute与实体之间的匹配与转换,其中的内容包括反射、XML以及Lin...
C# Winform ListView虚拟模式

C# Winform ListView虚拟模式

C# Winform ListView虚拟模式2013-11-13一、前言虚拟模式在许多情况下都很有用。 如果必须从已存在于内存中的非常大的集合填充一个 ListView 对象,则为每项创建一个 ListViewItem 对象会很浪费。 在虚拟模式下,从缓冲之中获取所需的数据进行加载,性能会有很大提高。 在其他情况下,可能需要经常重新计算 ListViewItem 对象的值,对整个集合进行此操作将产生不可接受的性能。如下为虚拟模式的一个应用示例(仿VS20...
C#插件开发简单模型

C#插件开发简单模型

C#插件开发简单模型2013-11-13一、前言插件模型指应用程序由一些动态的独立模块构成,每个模块均具有一个或多个服务,并满足一定的插件协议,能够借助主程序实现主程序-插件,插件-插件之间的通讯。它定义了一套公共的接口,通过接口与插件进行通信,主要是通过反射来获取相关的属性和方法,然后再执行指定的操作。其实,它也可以理解为定义一套通用的解决方案,通过反射来获取相应的程序集的相关类型,然后执行这些指定类型的相关操作。它是一种即插即用的方案,更新及维护简便。...
C#集合对象的属性赋值

C#集合对象的属性赋值

C#集合对象的属性赋值2013-11-13(一)前言继《对象属性之间的相互赋值 》后,关于集合对象属性的赋值,主要可以通过循环遍历集合中的对象来进行属性间的赋值。这些可以运用于不同对象之间、相关属性类似的情况。最常见的是web services与silverlight之间的对象赋值(对象之间的属性值只有一部分是需要的),这样可以减少silverlight对web services的依赖。(二)具体实现通过反射将源对象与目标对象之间的属性赋值。源对象的属性名...
用C#来显示垃圾收集过程的视觉效果

用C#来显示垃圾收集过程的视觉效果

用C#来显示垃圾收集过程的视觉效果2013-11-25 cnblogs JasenKin废话不多说了,本人是搞Web方向的,C/S不太熟悉,先看界面图(比较粗糙),这里仅仅是从一个视觉的 效果来初步显示GC相对应的操作(简单的效果显示,并不是真正的GC内幕,那个我也不懂)基本概念对象的生成过程(newobj指令)1:计算类型(包括基类)所有字段的字节总数2: 字节总数再加上对象开销字段字节数(相加为:对象所需的字节数)。每个对象包含2个开销字段 :类型对象...
c#实现QQ群成员列表导出及邮件群发开篇

c#实现QQ群成员列表导出及邮件群发开篇

c#实现QQ群成员列表导出及邮件群发开篇2013-11-25 cnblogs 狼性法则前言随之互联网的发展,网上营销的手段越来越多,其中就包括我们都反感的垃圾邮件,QQ对于我们来说并不陌生,相信国内大部分的网民都在使用QQ,如果我们开通了QQ邮件的功能,经常会收到一些垃圾邮件。网上现在很多很多商业版的QQ群发软件,包括导出群成员列表,给群成员列表发送群邮的等功能。这类软件卖价也不高,但是限制很多,本文的目的就是实现c#模拟QQ登陆并导出群成员列表,实现群邮...
c#实现QQ群成员列表导出及邮件群发之模拟QQ登陆

c#实现QQ群成员列表导出及邮件群发之模拟QQ登陆

c#实现QQ群成员列表导出及邮件群发之模拟QQ登陆2013-11-25 cnblogs 狼性法则前言本文的重要部分:1、抓包获取QQ空间或者邮箱登陆地址,分析参数,用户名,密码, 验证码,gtk,随即数。2、获取每次登陆需要的验证码3、用户名,密码,验证码加密得到登 陆密码4、Http模拟登陆拿cookie本文实验的思路也可换另一种方式,抓包获取登陆的js,用代 码操作js来计算密码 ,gtk等实现登陆。抓包1、我们来访问qq空间的地址http://i.q...
c#实现QQ群成员列表导出及邮件群发之群列表及群成员获取

c#实现QQ群成员列表导出及邮件群发之群列表及群成员获取

c#实现QQ群成员列表导出及邮件群发之群列表及群成员获取2013-11-25 cnblogs 狼性法则前言通过前两篇的代码编写已经能正常模拟QQ登陆,拿到cookie也就是我们进行以后相关操作的金 钥匙。这篇文章将通过代码的方式去获取登陆QQ账号的群列表,某群里面的群成员列表。本文重点:1、抓包获取QQ群列表访问地址2、抓包获取QQ群成员列表3、参数值计算,gtk的计算 方法(网上几乎找不到的计算方法)4、处理返回值本文完成这一系列也基本算是完成了,到此 ...
<< 91 92 93 94 95 96 97 98 99 100 >>