
c#
xiuzhentianting
这个作者很懒,什么都没留下…
展开
-
异步执行返回页面内容 AddOnPreRenderCompleteAsync
aspx: Async="true"cs:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Threadi原创 2015-09-08 13:34:11 · 578 阅读 · 0 评论 -
讨厌C#的fixed,直接用指针的方法
public struct TUserItem{int a;}// 定义TUserItem*[] m_UseItems = new TUserItem*[14];// 分配TUserItem* FirstItems = (TUserItem*)Marshal.AllocHGlobal(sizeof(TUserItem) * m_UseItems.Length);原创 2015-09-07 12:35:06 · 1499 阅读 · 0 评论 -
C#的string有null的概念,但是Delphi却没有
Delphi的string不用初始化,默认就是空字符串,而不是null原创 2015-09-07 12:38:35 · 592 阅读 · 0 评论 -
C# 的@是可定义Unicode变量的
public static void TestFun(CTestClass tc){tc.Val = 100;}public class CTestClass{public int Val;}CTestClass @汉字变量 = new CTestClass();TestFun(@汉字变量);原创 2015-09-07 12:45:20 · 507 阅读 · 0 评论 -
C# 中 Struct 与 Class 的区别,以及两者的适用场合
如果结构体很大,总分配栈 内存会导致溢出,可以就是再定义一个类,包装下结构体,new 类,这样分配的内存就不是栈了原创 2015-09-07 12:49:04 · 378 阅读 · 0 评论 -
C# volatile与lock
一、C#中volatilevolatile是C#中用于控制同步的关键字,其意义是针对程序中一些敏感数据,不允许多线程同时访问,保证数据在任何访问时刻,最多有一个线程访问,以保证数据的完整性,volatile是修饰变量的修饰符。1、volatile的使用场景多个线程同时访问一个变量,CLR为了效率,允许每个线程进行本地缓存,这就导致了变量的不一致性。volatile就是为了解决这原创 2015-09-11 10:35:17 · 385 阅读 · 0 评论 -
c#中的delegate
你完全可以把delegate理解成C中的函数指针,它允许你传递一个类A的方法m给另一个类B的对象,使得类B的对象能够调用这个方法m,说白了就是可以把方法当作参数传递。不过delegate和函数指针还是有点区别的,delegate有许多函数指针不具备的优点。首先,函数指针只能指向静态函数,而delegate既可以引用静态函数,又可以引用非静态成员函数。在引 用非静态成员函数时,delegate不原创 2015-09-08 13:31:34 · 317 阅读 · 0 评论 -
同一Session中的aspx页面的并发限制
项目中客户端采用WebBrowser展示aspx页面,用户有可能打开带多个带WebBrowser的winform窗体。此时,如果其中一个的WebBrowser的aspx页面响应较长的话,其他窗体中的WebBrowser页面会出现等待现象。 经研究后发现,如果是同一Session会出现上述情况,但不过不是同一Session的则不会出现。默认asp.net中,如果没有使用到Session原创 2015-09-08 13:32:17 · 844 阅读 · 0 评论 -
看C#实现源码,可以参考算法 HttpUtility.UrlEncode
public static string UrlEncode(byte[] bytes, int offset, int count){if (bytes == null){return null;}return Encoding.ASCII.GetString(UrlEncodeToBytes(bytes, offset, count));}public static byte原创 2015-09-08 13:26:42 · 1286 阅读 · 0 评论 -
C#的lambda表达式
实际上就是匿名函数:(x,y)=>x*y表示delegate(x, y) {return x*y}(int x)=>{return x*x;}表示delegate(int x){return x*x;}delegate表示委托给编译器自动判断类型或自动处理命名。原创 2017-06-05 10:31:49 · 657 阅读 · 0 评论 -
C# 为啥用invoke,实际上是处理多线程的问题
C#的async事件,就是异步事件的调用,并不是在主线程里面的,如果直接在async事件里面操作逻辑,比如引起资源共享的错乱。所以就有了invoke和begininvokecontrol.invoke(参数delegate)方法:在拥有此控件的基础窗口句柄的线程上执行指定的委托。control.begininvoke(参数delegate)方法:在创建控件的基础句柄所在线程上异步执原创 2017-06-05 10:41:43 · 2497 阅读 · 0 评论 -
u3d的3dText一直正面显示的方法:让用户看不到反面的文字
public class FaceCamera : MonoBehaviour { private Camera cam; private void Start() { cam = GameObject.Find("Main Camera").GetComponent(); } // Update is called once per frame void Update ()原创 2017-05-31 19:43:06 · 2369 阅读 · 0 评论 -
C#的类类似于指针
public static void TestFun(CTestClass tc){tc.Val = 100;}public class CTestClass{public int Val;}CTestClass tc = new CTestClass();TestFun(tc);tc被改成了100原创 2015-09-07 12:46:00 · 1329 阅读 · 0 评论 -
C#Unicode编码不可逆,Default也不可逆
不可逆:4个eunsafe static void Main(string[] args){byte[] by = new byte[256];for (int i = 0; i by[i] = (byte)i;string s = Encoding.Unicode.GetString(by);byte[] by2 = Encoding.Unicode.GetBytes原创 2015-09-07 12:41:46 · 405 阅读 · 0 评论 -
aspx的static变量
正常道理,static是网站启动就不会变了,实际上不是的,类的static变量过一段时间会重新初始化要想不变的,可以用 application["var"]原创 2015-09-10 10:22:17 · 595 阅读 · 0 评论 -
C#中new、override、virtual关键字的区别
一、在C#中,new这个关键字使用频率非常高,主要有3个功能: a) 作为运算符用来创建一个对象和调用构造函数。b) 作为修饰符。c) 用于在泛型声明中约束可能用作类型参数的参数的类型。在本文中,只具体介绍new作为修饰符的作用,在用作修饰符时,new关键字可以在派生类中隐藏基类的方法,也就说在使用派生类的方法是调用的方法是New关键字新定义出来的方法,而不是基类的方法。在不使用N原创 2015-09-05 14:29:25 · 380 阅读 · 0 评论 -
外网访问本机调试的VS2008 C#网站
1、xp系统支持,win8也支持2、需要做本地端口转发 用 port2port3、知道外网ip,路由器做转发4、本机开放防火墙原创 2015-09-05 14:23:40 · 707 阅读 · 0 评论 -
测试限制域名网站的方法
修改host,把限制的域名映射的本机,就可以本机调试了。也可以本机测试了。限制域名并没判断域名和映射的ip一致性。原创 2015-09-06 10:18:25 · 407 阅读 · 0 评论 -
c# System.Threading.Timer是多线程,并能同时执行
public static void RunTimerTimer(object Sender){Console.WriteLine(String.Format("BeginSleep ID:{0} Tick:{1}", Thread.CurrentThread.ManagedThreadId, HUtil32.GetTickCount()));Thread.Sleep(200);C原创 2015-09-07 12:32:46 · 4351 阅读 · 0 评论 -
C#在文件读写结构体 Marshal效率低
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using原创 2015-09-07 12:51:48 · 1319 阅读 · 0 评论 -
C#指针读写结构体,效率高
fixed (int* p1 = &point.x){fixed (double* p2 = &arr[5]){// Do something with p1 and p2.}}fixed 语句禁止垃圾回收器重定位可移动的变量。fixed 语句只能出现在不安全的上下文中。Fixed 还可用于创建固定大小的缓冲区。fixed 语句设置指向托管变量的指针原创 2015-09-07 12:49:46 · 1047 阅读 · 0 评论 -
C#操作指针,用Reflector反编译系统代码看到的
代码:BitConverter.GetBytes(ts.uTest);BitConverter.GetBytes(ts.dTest);BitConverter.GetBytes(ts.uTest);生成的exe后,反编译:public static unsafe byte[] GetBytes(double value){return GetBytes(原创 2015-09-07 12:51:11 · 722 阅读 · 0 评论 -
C#和Delphi跟踪的问题,和实际数据不一样
C#对于Pack=1的大结构体,跟踪watch的sizeof和实际运行不一样Delphi对于长度大于1万的string,跟踪显示后面的全部是乱码,保存到文件却是正常的,说明和实际不一样原创 2015-09-07 12:36:21 · 121 阅读 · 0 评论 -
代码是大的工程
用reflactor看微软的2005数据库客户端管理工具,发现代码真的是大的工程原创 2015-09-07 12:44:52 · 372 阅读 · 0 评论 -
用reflector看到C#Random类的实现
[Serializable, ComVisible(true)]public class Random{// Fieldsprivate int inext;private int inextp;private const int MBIG = 0x7fffffff;private const int MSEED = 0x9a4ec86;private const int MZ =原创 2015-09-07 12:50:26 · 688 阅读 · 0 评论 -
c#的struct和class完全不同
struct不需要new,是栈分配的内存,如果需要用堆分配,比较麻烦,需要专门函数处理class是个指针,默认不分配内存,是null,需要new。原创 2017-08-01 17:42:46 · 317 阅读 · 0 评论