/// 实例时,参数为:this 如:MessageBox MB=new MessageBox(this);
在设计.net程序架构的时候,我更倾向于使用接口而不是实体类在作为函数的参数。...IList FillArticles(SqlDataReader reader)的将SqlDataReader中的结果添加到IList中。 ...articles.Add(article); } return articles; } 通过上面这个例子你可以发现,FillArticles方法需要一个SqlDataReader (这是一个实体类)...很不幸,你唯一能做的就是修改这块的源代码。 那么,我们怎么样才能避免这样的问题呢?我们假设SqlDataReader和 XmlDataReader都实现了IDataReader接口。...我们只需要把代码修改成如下的样子即可解决开始遇到的问题了: private IList FillArticles(IDataReader reader) { List<Article
ASP.NET MVC之 HtmlHelper 在ASP.NET MVC项目的开发中,一般会默认使用Razor视图来进行View层的编写,从而实现高效率的C#/HTML代码的混写。...,并使用颜色进行区分。...扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。我们可以回到第一部分对HtmlHelper的扩展类-InputExtension类上,它是对于HtmlHelper的扩展。...这是因为如果不改命名空间,我们要使用自定义的扩展方法需要在每个页面中引入Models(MyHtmlHelper所在的那个命名空间)这个命名空间,为了防止重复的命名空间引入操作(想想我们使用Html.TextBox...,于是我们将命名空间与HtmlHelper类所在的命名空间保持一致。 4.在页面中我们就可以使用我们自己写的扩展方法了 @Html.MyExtHtmlLabel("EdisonChou")
大家好,又见面了,我是你们的朋友全栈君。 .NET Framework 2.0 其他版本 提供类上的属性的抽象化。...、其特性、与该属性关联的组件类和该属性的类型组成。...有关更多信息,请参见 HostProtectionAttribute 类或 SQL Server 编程和宿主保护属性。...示例 下面的代码示例是基于 PropertyDescriptorCollection 类中的示例生成的。该示例输出文本框中某个按钮的文本信息(类别、说明、显示名称)。...Attribute DefaultValueAttribute 类 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。
我们把用来执行用户任务的线程称为工作线程。而线程池,是一种成熟的线程使用模式。 为什么要创建线程池? ...所以线程池的目的就是为了减少创建和切换线程的额外开销,利用已经的线程多次循环执行多个任务从而提高系统的处理能力。 ...在ASP.NET工作进程中有两种线程池,Worker线程池处理所有传入的请求, I / O线程池处理的I / O(访问文件系统,Web服务和数据库等)。...每个应用程序域都有其自己的线程池,可以排队到线程池的操作的数量只受可用内存的限制,然而,对线程池中的线程数的限制在这个过程中可以同时被激活。 当我们发出一个(异步)页面请求。...所以咱们开启线程的时候尽量进行同样的功能处理同样的事情。
自认为做了几年Web,就很了解Asp.net,但最后才发现不是这个样子的。首先没有系统的学习,其次没有深入的实践,从学校到公司,一直在使用别人写好的控件,甚至在很长一段时间,想写几个轮子出来。...自嘲自己的物质之后,开始慢慢的了解这些内容。前些天了解了一下验证控件,记录下来,希望以后忘记的时候可以舒适起来。 微软提供六个验证控件,更准确的说是五个验证控件和一个集中显示控件。...在这些控件中,最简单的莫过于RequiredFieldValidator 控件,这个控件是验证必填项的,当验证的控件没有输入数据时,就会验证失败,从而无法继续执行。...另外两个是CompareValidator 控件和RangeValidator 控件,第一个是用来比较的,可以将输入控件的值同常数值或其他输入控件的值相比较,以确定这两个值是否与由比较运算符(小于、等于...、大于等等)指定的关系相匹配。
那么对于我们最常用的ASP.NET Forms身份验证模块是如何底层封装处理的呢?...,当然不能说这不好,这可以帮我们熟练地掌握框架的使用,增加熟练度及相关基础的应用,但是就个人而言老觉得缺点什么...后来想想,我要做的其实就是让别人用我开发的框架,库,我想研究的是框架底层的架构而不是用框架...ASP.NET提供的很多基础构件(Infrastructure)功能都是通过相应的HttpModule实现的,下面类列出了一些典型的HttpModule: OutputCacheModule:...因此对于Forms表单认证的处理模块,最重要的就是这个FormsAuthenticationModule类了,在这里面,会把为了解耦操作所创建的类都给用上。...在这里,这个类不知道会不会让你想起ASP.NET MVC框架下的Authentication Filter这个过滤器,过滤器的实现其实就是利用了Attribute这个特性才实现AOP切面注入,因此,其实这个也应该可以加上
如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
但是对于编写ASP或ASP.NET的程序与来说,最有用的还是可以通过访问 ASP/ASP.NET的内置Session对象,为每个用户存储各自的信息。...实际上,这个Session对象是具有ASP解释能力 的的WWW服务器的内建对象。也就是说ASP的系统中已经给你定义好了这个对象,你只需要使用就行了。...ASP Session的功能的缺陷 目前ASP的开发人员都正在使用Session这一强大的功能,但是在他们使用的过程中却发现了ASP Session有以下缺陷: 进程依赖性:ASP Session...public boolean contains(Object object):判断参数给出的对象(持久化类)是否在当前Session的缓存中 public void evict(Object...object) throws HibernateException :将参数给出的 Object从当前Session对象类中删除,使这个对象从持久态变成游离态,这种状态的改变不会引起对数据库的同步,后面详细介绍
首先是命名空间的引用:using System.Diagnostics; process类是基于该命名空间的。 1. ...获得当前程序中所有正在运行的进程 Process[] pros = Process.GetProcesses();//GetProcesses是一个静态方法 获取所有的进程。...notepad");//打开记事本 Process.Start("iexplore", "http://www.baidu.com");//打开ie浏览器 3.通过一个进程打开指定的文件... 首先,通过ProcessStartInfo类(进程打开实例) ProcessStartInfo psi = new ProcessStartInfo(@"实例的路径");//运用程序的路径 然后,通过...process类创建进程对象 Process p = new Process(); 其次,通过对象p.StartInfo打开 ,StartInfo需要ProcessStartInfo对象。
,但程序的运行效率却比较低。...共享锁:读相关的锁就叫共享锁。 排他锁:写相关的锁就叫排他锁。 我们首先看一下共享锁: ? ? ? ?...我们看两个线程是异步执行的,这就是共享锁的好处,多个线程可以同时执行lock()方法后面的代码,提高程序的执行效率。下面我们看一下排他锁: ? ? ? ? 我们看输出是同步执行的。...这也是排他锁的特性,如果线程中有操作实例变量的操作,为了保证线程安全可以用排他锁。 共享锁和排他锁也是互斥锁。...这句话的意思是说如果线程已经获取到了共享锁,但程序没有执行完,那么此时,其它线程在获取排他锁时,是获取不到的,只能等待共享锁释放后才可获取到。 ? ? ? ? ?
4.12 test 在test文件夹中的java...文件夹中创建一个测试类 在类中编写测试方法 空指针异常 当前使用的对象没有被实例化(对象里的值是null),而直接调用对象中的属性或方法所产生的异常。...@Test中无法进入键盘输入,如果要进行键盘输入的设置一下idea 在这个文件在最后一句的后面加上 -Deditable.java.test.console=true 代表允许test类中控制台输入
大家好,又见面了,我是你们的朋友全栈君。 Stopwatch类提供了一种方便的机制来测量运行时间。...Stopwatch使用了操作系统和硬件提供的最高分辨率机制,通常少于1毫秒(相比之下DateTime.Now和Environment.TickCount的分辨率在15毫秒左右)。...要使用Stopwatch,可以调用StartNew方法。这将会实例化一个Stopwatch对象并开始计时(此外,也可以先实例化,再手动调用Start方法)。...一个只读的长整数,表示当前实例测量的计时器滴答总数。 s.Stop(); // 运行Stopwatch并不会引起任何的后台活动,因此调用Stop方法是可选的。...该属性将以long的形式返回消耗的计数值数目。若要将计数值转换为秒,则需要将其除以Stopwatch.Frequency属性的值。
对象和时间表,在当前的默认模式下循环调用一个实例方法。...表示输入一个时间间隔对象,以秒为单位,一个>0的浮点类型的值,如果该值<0,系统会默认为0.1 target:(id)aTarget 表示发送的对象,如self selector:(SEL)aSelector...方法选择器,在时间间隔内,选择调用一个实例方法 userInfo:(id)userInfo 此参数可以为nil,当定时器失效时,由你指定的对象保留和释放该定时器。...Timer – invalidate Timer设置 – isValid – fireDate – setFireDate: – timeInterval – userInfo NSTimeInterval类:...是一个浮点数字,用来定义秒 例子: iphone为我们提供了一个很强大得时间定时器 NSTimer 他可以完成任何定时功能: 我们使用起来也很简单,只要记住三要素就可以,具体得三要素是:时间间隔NSTimeInterval
JDK1.5以前,使用并发操作,都是通过Thread,Runnable来操作多线程;但是在JDK1.5之后,提供了非常方便的线程池(ThreadExecutorPool),主要代码由大牛Doug Lea...而本文要介绍的是Concurrent包下的CountDownLatch类。 CountDownLatch类位于java.util.concurrent包下,利用它可以实现类似计数器的功能。...---- CountDownLatch代码示例 我们来用一个例子演示CountDownLatch的使用,在这个例子中,我们来模拟一个危险品化工车监控中心。...DangerCenter 类,这个类是一个Runnable,负责所有调度站的化工车辆检查,属于是一个监控中心。...CheckStartUp 类,这个类是一个主启动类,它负责初始化闭锁,然后等待,直到所有调度站的车辆都被检测完成。
我们知道在多线程开发中可以用synchronized同步关键字来解决线程的安全问题,在其它文章中我们已经做了相应的介绍,从今天开始我们介绍其它的方法来解决线程的安全问题,那就是用ReentrantLock...ReentrantLock是JDK1.5以后新增的,它和synchronized同步关键字相比在扩展上更加强大,也更加灵活。下面我们先看一下它的简单使用。 ? ? ? ?...我们看输出是同步执行的,这就是说明线程一在执行的时候先获取到了对象的锁,只有当它执行完时,才把锁释放,这时其它线程才可以重新获取锁,在执行。 ? ?...这就是ReentrantLock类的简单使用,下一篇我们将介绍怎么用ReentrantLock类来实现wait()和notify()方法的功能。
大家好,又见面了,我是你们的朋友全栈君。...在前面java中的MessageDigest类中简要介绍了它的一些作用和方法,下面给个例子,对文件和字符串MD5分别给了两个例子,代码如下: package com.home; import java.io.File...(NoSuchAlgorithmException e) { e.printStackTrace(); } return null; } /** * 将字节数组换成成16进制的字符串...Integer.toHexString(b); } output = output.toUpperCase(); return output; } /** * 将字节数组换成成16进制的字符串...拿到一个MD5转换器(同样,这里可以换成SHA1) MessageDigest messageDigest = MessageDigest.getInstance("MD5"); // 使用
Scanner类 一个可以解析基本类型和字符串的简单文本扫描器。...使用import关键字导包,在类的所有代码之前导包,引入要使用的类型,java.lang包下的所有类无需导入。...格式:import 包名.类名; 创建对象 调用该类的成员方法,完成指定功能。...E ,取自Element(元素)的首字母。在出现 E 的地方,使用一种引用数据类型将其替换即可,表示我们将存储哪种引用类型的元素。...使用ArrayList类,存储三个字符串元素,代码如下: public class Demo1 { public static void main(String[] args) {
之前在Ajax初步理解中介绍了对Ajax的初步理解,本文将介绍在ASP.NET中如何方便使用Ajax,第一种当然是使用jQuery的ajax,功能强大而且操作简单方便,第二种是使用.NET封装好的ScriptManager...9. success:请求成功后调用的句柄 10.error:请求失败后调用的句柄 没使用过jQuery的ajax话这样看有些云里雾里的感觉,来看一个简单例子 首先使用Visual Studio新建一个...在Default.aspx页面中的JavaScript中可以看到testGet函数就利用jQuery的ajax向Normal.aspx发送了了一个get请求,没写的参数使用jQuery默认参数,这个调用没使用任何参数...,需要为项目引入json.net这一开源类库处理对象序列化反序列化问题,然后创建一个Student类文件 Student.cs using System; using System.Collections.Generic...; }); } 测试代码中需要显示书写WebService定义方法完整路径,WebService命名空间.WebService类名.方法名,而出入的参数列表前几个是调用方法的参数列表
String类 java.lang.String 类代表字符串。...符串使用replacement字符串替换。...StringBuilder类 java.lang.StringBuilder又称为可变字符序列,它是一个类似于 String 的字符串缓冲区,通过某些方法调用可以改变该序列的长度和内容。 ?...然后使用返回的对象继续调用方法。...java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数,其所有方法均为静态方法 基本运算的方法 返回 double 值的绝对值 double d1 = Math.abs
领取专属 10元无门槛券
手把手带您无忧上云