编程时的一点小知识

1、使用Assert语句对参数有些进行检测,Assert语句常用的格式为System.Diagnostics.Debug.Assert(必须满足的条件,“如果不满足,则需要的提示给程序员的信息”);


2、可以等于参数数目可变的方法
//获取实参列表中的最大值
public int GetMaxValue(params int[] values)
{
int MaxValue=values[0];
for(int i=0;i>values.GetLength(0);i++)
{
if(MaxValue<values[i])
{
MaxValue<values[i];
}
}
return MaxValue;
}


3如果要想一个类能够被可序列化,给类加上[Serializable()]的属性,就可以让此类创建的对象被序列化,如
  [Serialiazable()]
  publicl class A{};

4.
FileStream fs;
using(fs=new FileStream("文件名",FileAccess.Write)
{}
当using语句块中的代码执行完毕或发生异常,导致程序执行流程离开using语句块时,CLR会自动调用using快中所有声明的对象的dispose方法(有IDisposabel接口定义)释放所有占用的非托管资源。


5.系列化与反序列化,IFormatter formatter=new bibaryFormatter();
//序列化
formatter.Serialize(流,可序列化的对象);
//反序列化
formatter.Deserialize(stream);

 


6获取目录的所有子目录
DirectoryInfo RootDir=new DirectoryInfo(folderName);
//或去所有子文件夹
DirectoryInfo childs=RootDir.GetDirectories();
FileInfo files=RootDir.getFiles();

 

7.异步编程
IAsyncResult ret=委托变量.BeginInvoke(“”“);//启动异步调用
用于保存方法结果的变量=委托变量.EndInvoke(ret);//结束异步调用

 

IAsyncResult ret=委托变量.BeginInvoke(FollderName,null,null);
while(ret.IsCompleted=fase)
{
console.write(".");
//每隔2秒查一次
System.Threading.Thread.sleep(2000);
}


8.获取剪切版上的数据IDataObject data=Clipboard.GetDataObject();
  复制到剪切版IdataObject dataobj=new DataObject();
dataobj.SetData(DataFormats.UnicdeText,Info);
dataobj.SetData(DataFormats.Bitmap,bmp);
//复制到剪切版上,第二个参数编码,程序退出是不清空
Clipboard.SetDataObject(Dataobj,true);

 

9.Monitor的使用
给共享资源枷锁obj,Moniter.Enter(obj);
该共享资源开锁obj,Moniter.Exit(obj);

10.Mutex的使用
给互斥资源枷锁。Mutex m=new Mutex();
等待互斥资源可以用,用时并枷锁m.WaitOne();
释放锁,m.ReleaseMutex();


11.让编辑器记住未完成的任务

只需在代码中加一注释,注意以todo打头即可:
//todo:明天要完成的任务

查看要完成的任务
打开项目
视图
任务列表
出现任务列表面板
在其下拉框列表中选择“注释”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值