摘要:
STARTUP 1 ARM的启动 一般的嵌入式系统在主程序执行之前都需要执行一些初始化的过程以创造嵌入式程序运行的环境,尤其是一些高级的嵌入式系统,由于核心芯片使用内存映射、内存保护等机制以及编程使用高级语言C,C++甚至JAVA语言,都需要先创建一个适合程序运行的硬件环境,然后初始化或者配置或者剪裁run-time library, 这些工作都必须在主程序运行前完成,所以一个startup程序或者程序组对于一个嵌入式系统来说是非常重要的。要编写startup程序,需要对编译器、链接器和汇编器的细节有一定的了解,同时对ARM芯片硬件本身的地址分配以及memory mapping机制也需要有一些 阅读全文
摘要:
ASP.NET可以包含以下内容: 服务器的处理命令 C#、VB.NET或其他.NET FramenWork支持的代码 对应生成资源的窗体内容,如HTML 客户端代码,如JS 内嵌的ASP.NET服务器控件 阅读全文
摘要:
刚开始票房纪录让人大失所望,但后来通过有线电视迅速蹿红,以至于几乎我认识的每个人都认为这是所有时代最出色的电影之一。我说的是《肖申克的救赎》。这是一部发人深思的电影,而前两天在跟一个朋友聊天时,我才意识到这部电影所包括的教训对于一个创业的人来说是多么得重要。 教训1-成功的间断性(为什么一夜成名都源于实在的长期奋斗) 一夜成名并非真能在一个晚上出名。那只是表面现象。我在介绍Elton John和... 阅读全文
摘要:
使用System.Net.WebClient类可以从特定的URI请求文件。System.Net.WebClient是一个非常高级的类,它用简单的命令就能实现一些基本操作。下面通过几个实验,说明怎样使用这个类从下载和上传数据。 1、下载文件 使用WebClient类下载文件有两种方法,具体使用哪一种方法取决于文件内容的处理方式。如果需要把文件存储到文件系统上,需要使用DownloadFile()方法... 阅读全文
摘要:
异步委托就是定义一个方法,开一个新线程,让这个方法在后台执行。定义一个委托并异步调用它,是创建线程的一个简单方法。委托是方法的类型安全引用。Delegate类支持异步调用的方法,在后台Delegate类会创建一个执行任务的线程。我们先定义一个需要一定时间才能完成的方法:TakesAWhile(int data,int ms),这个方法调用Thread.Sleep方法,至少需要经过传入的参数ms毫秒后才能执行完。代码 public static int TakesAWhile(int data,int ms){Console.WriteLine("TakesAWhile started 阅读全文
摘要:
线程是程序中独立的指令流。所以程序都有一个入口点,程序从这个入口点开始执行,直到这个入口方法返回为止。 在C#程序中,入口点方法是Main()。程序都是从Main()的第一条指令开始执行的。 这种程序结构非常适合于其中有一个可识别的任务序列的程序,但程序常常要并行完成多个任务。一次有了线程的概念。线程对客户端和服务器端都很重要。比如在VS编辑器中编辑代码时,系统会有一个线程接收用户的输入,一个... 阅读全文
摘要:
Linq是语言集成查询的简称。Linq简化了语言查询,是的程序员可以使用相同的语法查询不同的数据源。 本文是闲暇之余学习Linq的产物。代码是花了大约一周的业余时间组织的,敲出来只是为了记住它。本文使用的Linq查询包含了两种方式,一种是直接查询,另一种是使用System.Linq中定义的扩展方法进行的查询。对于扩展方法查询的方式,使用了大量的Lambda表的是和系统定义的委托FuncT。不熟悉这两个东西的童鞋们可以在本博找到相关的文章: 【Lambda表达式学习记录】【ActionT和FuncT委托】 一、准备供查询的数据 本文首先构建一个提供数据的实体类供以后的查询使用。 阅读全文
摘要:
(1) Ticket:提供对票证的属性和值的访问,这些票证用于Forms身份验证,对用户进行标识。可以使用FormsIdentity 类的 Ticket 属性访问当前经过身份验证的用户的 FormsAuthenticationTicket。通过将当前User 的 Identity 属性强制转换为类型 FormsIdentity,可以访问当前 FormsIdentity 对象。 (2) Token... 阅读全文
摘要:
LinkedListT是系统定义的一个双向链表。它由LinkedListNodeT链接而成。其元素LinkedListNodeT指向其前一元素和后一元素。 链表的优点是:想链表中插入元素时,不用移动该元素后边的所有元素,只需要修改上一个元素的Next和下一个元素的Previous。 链表的缺点是:链表中的元素只能一个个地访问,查找元素时比较耗时。 链表不仅能在列表中存储元素,在存储元... 阅读全文
摘要:
Lambda表达式可以简化C#编程的某些方面,用法非常灵活。因此也不容易掌握。下边是我学Lambda表达式的一点记录。1、Lambda表达式是与委托紧密联系的。只要有委托参数类型的地方,就可以使用Lambda表达式。Lambda表达式的运算符是=。运算符左边列举出了需要的参数,右边定义了赋予Lambda变量的方法的实现代码。下面这段代码是一个最简单的使用方法:Funcstring, string是一个委托类型。包含两个参数:一个输入的string和一个输出的string.parm是输入参数,所以他的类型可以认为是string类型的(当然很多地方会出现没有名字的类型的)。运算符=右边表示 阅读全文
摘要:
泛型ActionT委托和FuncT委托是系统定义的两个泛型委托。 ActionT委托表示引用一个返回类型为Void的方法。这个委托存在不同的变体,可以传递之多16个不同的参数类型。同时,没有泛型参数的Action类可以调用没有参数的方法。例如,Actionin T表示有一个输入参数的方法,Actionin T1,in T2表示有两个输入参数的方法。 FuncT可以以类似的方法使用。不过FuncT允许调用带返回参数的方法。FuncT也有不同的变体,之多可以传递16个参数和一个返回类型。例如:Funcout TResult委托类型可以无参的带返回类型的方法,Fu 阅读全文
摘要:
本文是学习C#高级编程和C#入门经典的一点记录。 理解事件这个东西,必须先知道委托。 事件基于委托。事件是提供了发布/订阅机制的委托。 事件是由对象引发的,我们可以提供代码来处理事件。我们需要在代码中订阅(subscribe)事件才能在事件发生时执行这些代码,即设置事件处理程序。 单个事件可以有多个时间处理程序。在该事件发生后,这些处理程序都会被调用。时间处理程序可以在引发该事件的对象所在的类中,也可以在其他类中。事件的处理程序本身都是简单的方法,对事件处理方法唯一的要求是他必须匹配事件所要求的返回类型和参数。 事件的基本处理过程是这样的。首先,应用程序创建一个可引发事件的对象。接着,应用程 阅读全文
摘要:
重新认识C#,记录点点滴滴C#中的装箱和拆箱操作指的分别是把值类型转换成引用类型(装箱)和吧引用类型转换成值类型(unboxing)。装箱用于描述把一个值类型转换成引用类型,运行库会在堆上为该对象创建一个临时的引用类型的“箱子”。改装换可以隐式地进行,如下所示:拆箱用于描述相反的过程,该操作将装箱的值类型强制转换回原来的引用类型。这个转换必须使用显式的强制转换。其语法类似于显式的类型转换,如下所示:拆箱操作只能对以前装箱的变量进行拆箱。当myObj不是装箱后的int型时,如果代码中将其强制转换成int将会在运行期间抛出异常。同时,在拆箱操作时必须确保得到的值变量有足够的空间存储拆箱的值的所有字 阅读全文
摘要:
今天还是没事干(我的博客还想都是以这句话开始的),看看小组里边的文章Oxite初探.下载Oxite的41500版本,打开后遇到这样的问题.如下图所示解决方法:1、邮件点击OxiteSite项目,选择编辑OxiteSite.csprj.打开该项目的项目文件2、在打开的项目文件中搜索UseIIS找到Web应用程序的属性设置段。(我是根据提示,搜索microsoftpdc-int.com找到的)3、将UseIIS段的值由True改成False。关闭项目文件。4、重新加载Oxite项目即可正常加载该项目。5、加载项目后,在解决方案资源管理器中右键点击该项目名称,依此选择属性- Web项查看该项 阅读全文
摘要:
ASP.NET 网站管理工具是ASP.NET2.0以来VS提供的操作Web.config的GUI.使用起来比直接编辑Web.config方便一些.但初始化配置时会遇到以下麻烦. 参考几个blog和俺自己的实验,总结点东西写写. 1、打开ASP.NET网站管理工具 有两个方法可以打开这个工具。 (1)通过菜单-》项目-》ASP.NET配置打开。如下图所示 (2)在解决方案资源管理器里边打开,如下图所示 打开的ASP.NET网站管理工具如图所示: 2、没有安装SQLEXPRESS的困难 在安装VS时,如果没有安装SQLExpress,点击安全选项卡,经过漫长的等待后,可以看见如下提示: 找不 阅读全文
摘要:
最近闲来没事,学学MVC.顺便记录下学到的东西...优化路由设置有的两种方法:1、指定路由名称,在视图中使用路由名称寻找URL路由。2、将最常用的路由存放在路由表的前面。1、指定路由名称,使用路由名称定位路由在ASP.NET MVC的路由设置中,路由的名称是可选参数,在路由解析中没有什么用.但是路由名称可以用来生成URL路由.当开发者使用路由名称来生成URL路由时,路由模块将快速定位到指定名称的路由,从而提高路由的解析速度.也就是说,如果该路由位于路由表中的第100个位置,路由模块将直接跳转到路由表的第100个位置,定位到指定名称的路由,否则将会通过查询的方式,顺序地查询一直查到第100个位置 阅读全文
摘要:
在ASP.NET MVC框架中,将视图中的数据传递到控制器中,主要通过发送表单实现的.具体使用中,主要使用以下三种方法.1、通过Request.Form读取表单数据 2、通过FormCollection读取表单数据 3、直接读取表单数据对象下边是我学习这些东西时的一点总结1、通过Request.Form读取表单数据 首先定义一个Person类如下:可以看到,对象person成功接收了表单传来的数据.2、通过FormCollection读取表单数据ASP.NET MVC中的FormCollection对象是提交的Form中所有对象的集合.为了通过FormCollection读取表单数据,设置如下 阅读全文
摘要:
Technorati 标签: 扩展方法 在实际应用中,开发者完成代码的编译后,除非重新编译更改后的代码,否则开发者很难在原有代码中添加新的功能. 在C#3.0中,提供了一个扩展方法的新特性,可以使得开发者在编译后的程序集里边添加相关的方法,从而很容易地扩展原有的功能.1、扩展方法的定义定义扩展方法时,首先这个扩展方法要被定义在一个静态类中(程序集加载时自动加载),因此这个扩展方法也必须是一个静态方法。其次,在扩展方法的参数列表中,需要在第一个参数类型的前面添加关键字this作为修饰符,而紧跟其后的就是扩展类的名称。如下所示:代码:扩展方法的定义在上述代码中,定义了一个静态类MyExtensio 阅读全文
摘要:
过节闲着没事,跟着老李学NHibernate.学到了NHibernate的一对多关系.感觉一对多结构就就像一个C++里边包含指针的类,对应关系就像指针一样从父类指向子类!程序中使用的一对多关系,是与数据库中的表对应的.一对多是指一个父表中的记录对应子表中的多条记录.在数据库中,子表通过外键与父表关联.首先来看看NHibernate中的集合类型 NHibernate支持/定义的几种类型的集合: Bag:对象集合,每个元素可以重复。例如{1,2,2,6,0,0},在.Net中相当于IList或者IListT实现。 Set:对象集合,每个元素必须唯一。例如{1,2,5,6},在.Net中相 阅读全文
摘要:
Technorati 标签: Pubs 阅读全文