You are hereDotNet / C#
C#
c#和javascript相互操作的方法
在asp.net开发中,经常会用到后台和前台的交互,就此总结了一点c#和javascript相互操作的方法
1.在后台c#代码中调用jacascript的方法
javascript代码:
function test()
{
ADO.NET 数据库访问之数据分页
程序尽可能地降低其使用的复杂性,它的优点是使用方便。现在这个程序还有一个缺点,那就是第读取一页的数据,都要打开一次数据库,这个问题是可以解决的,那就是要求在不使用之用执行一个Close,关闭数据库,这是以牺牲程序的安全性为代价的。各个方面需要权衡利弊。
* 使用说明:
* 首先创建一个MyDataPage类实例mypage,然后设置数据库连接串、查询表、查询列、查询条件、
* 排序条件等。然后执行mypage.DoPaging(),注意检查其返回值,返回真表示分页成功,否则
* 应查看mypage.ErrMessage属性。成功后,就可以使用mypage.GetData(<页编号>)读取数据了.
*
* 示例:
*
* using MyLibrary.DataAccess;
* MyDataPage myPage = new MyDataPage(
* "provider=sqloledb;server=(local);uid=sa;pwd=oohacker;database=Northwind",
* "Product",
* "ProductId,ProductName",
C#钩子实现及应用
要实现系统钩子其实很简单,调用三个Win32的API即可。
SetWindowsHookEx 用于设置钩子。(设立一道卡子,盘查需要的信息)
[DllImport( "user32.dll", CallingConvention = CallingConvention.StdCall )]
public static extern IntPtr SetWindowsHookEx ( WH_Codes idHook, HookProc lpfn,
IntPtr pInstance, int threadId );
CallNextHookEx 用于传递钩子(消息是重要的,所以从哪里来,就应该回到哪里去,除非你决定要封锁消息)
[DllImport( "user32.dll", CallingConvention = CallingConvention.StdCall )]
public static extern int CallNextHookEx ( IntPtr pHookHandle, int nCode,
Int32 wParam, IntPtr lParam );
UnhookWindowsHookEx 卸载钩子(卸载很重要,卡子设多了会造成拥堵)
c#(Socket)同步套接字代码示例
同步客户端套接字示例
下面的示例程序创建一个连接到服务器的客户端。该客户端是用同步套接字生成的,因此挂起客户端应用程序的执行,直到服务器返回响应为止。该应用程序将字符串发送到服务器,然后在控制台显示该服务器返回的字符串。
C#
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class SynchronousSocketClient {
public static void StartClient() {
// Data buffer for incoming data.
byte[] bytes = new byte[1024];
// Connect to a remote device.
try {
// Establish the remote endpoint for the socket.
// This example uses port 11000 on the local computer.
C#3.0 LINQ 查询语法
首先来看一个很简单的LINQ查询例子,查询一个int 数组中小于5的数字,并按照大小顺序排列:
class Program
{
static void Main(string[] args)
{
int[] arr = new int[] { 8, 5, 89, 3, 56, 4, 1, 58 };
var m = from n in arr where n < 5 orderby n select n;
foreach (var n in m)
{
Console.WriteLine(n);
}
Console.ReadLine();
}
}
上述代码除了LINQ查询语法外,其他都是我们所熟悉的语法,而LINQ查询语法跟SQL查询语法很相识,除了先后顺序。
Q:为何 LINQ 查询语法是以 from 关键字开头的,而不是以 select 关键字开头的?select 开头这种写法跟SQL的写法更接近,更易懂呀?
A:简单来说,为了IDE的智能感知(Intelisence)这个功能,select 关键字放在后面了。
C# 3.5 套接字(Socket)编程实例
首先从原理上解释一下采用Socket接口的网络通讯,这里以最常用的C/S模式作为范例,首先,服务端有一个进程(或多个进程)在指定的端口等待客户来连接,服务程序等待客户的连接信息,一旦连接上之后,就可以按设计的数据交换方法和格式进行数据传输。客户端在需要的时刻发出向服务端的连接请求。这里为了便于理解,提到了一些调用及其大致的功能。使用socket调用后,仅产生了一个可以使用的socket描述符,这时还不能进行通信,还要使用其他的调用,以使得socket所指的结构中使用的信息被填写完。
C#中的接口
1.都是“虚的”不能被实例化,这也是接口中为什么不能包含字段--成员变量的原因2.正因为接口是虚的,所以接口内的索引,属性,时间等只能有声明,而不能在接口内实现,具体如何实现是派生接口或者派生类的事.
3.都具有模板的性质,如果一个接口或者类从某一个接口继承,它将自动具有被集成者的特征(包括索引,属性,函数,实践等).
4.接口支持多重继承,而C#中,类之支持单一继承,接口实际表示的是一种承载能力,
下面是接口的一个简单定义:
interface
SampInterface1
{
string
this[ int index]
{
get;
set
}
;
event EventHandler Event;
void Find( int value );
//注意此处没有
{
}
string Po
int
{
get;
set
}
;
}
上面的接口定义了一个索引
this,一个实践Event,一个方法Find和一个属性Point.
C# 3.0的五项改进特性
1.隐型局部变量
C# 3.0引入了一个叫做“var”的新关键字。这个关键字允许开发者建立一个变量,但不必明确它的类型。例如,用var说明一个字符串,就像这样:
varmyData = "This is my data";
注意,这里并没有提到myData变量是一个字符串,而C# 2.0却要求这一点。
虽然var允许您建立隐含的类型,它并没有降低C#浓厚的类型特征。var关键字只有在建立变量时有用,一旦您建立变量并且确定它的类型以后,就不能再用var来改变一个变量的类型。
例如,这段代码没有作用:
varmyDate = DateTime.Now;
myDate = "Hello.";
使用var关键字还会产生一个有趣的结果,它可以帮助开发者减少建立变量时的代码输入。例如,在C# 2.0中建立一个Customer对象,需要输入以下代码:
Customer myCustomer = new Customer();
使用新的var关键字,则只要输入:
varmyCustomer = new Customer();
var关键字的另一个特点在于,使用它可以避免改变一个返回某个类型对象的方法调用。例如,在C# 2.0中,如果您需要调用一个返回Customer对象的方法,您应该编写以下代码:
C#的多线程机制
一.多线程的概念
Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的函数。多线程是指程序中包含多个执行流,即在一个程序中可以同时运行多个不同的线程来执行不同的任务,也就是说允许单个程序创建多个并行执行的线程来完成各自的任务。浏览器就是一个很好的多线程的例子,在浏览器中你可以在下载JAVA小应用程序或图象的同时滚动页面,在访问新页面时,播放动画和声音,打印文件等。
多线程的好处在于可以提高CPU的利用率——任何一个程序员都不希望自己的程序很多时候没事可干,在多线程程序中,一个线程必须等待的时候,CPU可以运行其它的线程而不是等待,这样就大大提高了程序的效率。
然而我们也必须认识到线程本身可能影响系统性能的不利方面,以正确使用线程:
线程也是程序,所以线程需要占用内存,线程越多占用内存也越多
多线程需要协调和管理,所以需要CPU时间跟踪线程
电子书下载 ebook download
FTP HTTP 电子书下载
============================================
Dot Net 电子书 下载 目录
============================================
------------------------