C#
文章平均质量分 62
不适合躺平
这个作者很懒,什么都没留下…
展开
-
随笔
<br />有效小数位数:<br />float 为7位,double为15位,decimal为31位。<br /><br />负数的二进制表示(即其补码):<br />如-123的二进制表示求法:先求其绝对值的二进制,取反加1就是。<br /><br />修饰符:<br /> 静态方法内只能调用静态成员(包括静态变量和静态方法)。<br /> <br />在构造器内this 代表要创建的对象,在普通方法内this代表方法的调用者。<br /> <br />嵌套类只能声明为public或private类型。原创 2010-08-13 17:29:00 · 476 阅读 · 0 评论 -
WPF 自带Datagrid编辑后无法更新数据源的问题
解决办法:在列的绑定属性里加上UpdateSourceTrigger,示例XAML如下 这样当即时编辑Datagrid单元格数据时会立马更新数据源的值。UpdateSourceTrigger 枚举详细说明见http://msdn.mi原创 2012-07-26 09:09:35 · 8726 阅读 · 0 评论 -
代码创建 WPF 旋转动画
一、WPF窗体上有一个名为rectangle2的矩形对应的XAML如下: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Wind原创 2012-07-21 17:47:26 · 7402 阅读 · 3 评论 -
WPF中将Dictionary<T,T>类型做为数据源绑定到TreeView上
一、后台源码using System.Collections.ObjectModel;namespace WpfTreeView{ public partial class MainWindow : Window { Dictionary mDicList; public MainWindow() {原创 2012-07-12 19:07:41 · 5361 阅读 · 2 评论 -
Silverlight中组合键用法举例
KeyDown事件处理函数: private void ControlMainPage_KeyDown(object sender, System.Windows.Input.KeyEventArgs e) { // Ctrl+S if (e.Key == System.Windows.Input.Key.S原创 2012-06-01 08:51:06 · 950 阅读 · 1 评论 -
Silverlight ListBox
1、自定义ListBoxItem Binding zhiduan}" Margin="5,2,0,0"/> Bindingshuxing}" Margin="5,2,0,0" Foreground="OrangeRe转载 2012-06-09 11:25:51 · 1388 阅读 · 0 评论 -
C#常用正则表达式
匹配数值型字符串:^-?([1-9]\\d*\\.?\\d*|0\\.\\d*[1-9]\\d*|0)$原创 2012-03-23 20:44:49 · 509 阅读 · 1 评论 -
匹配汉字的正则表达式
class Program { static void Main(string[] args) { while (true) { string str = Console.ReadLine(); string mode = "^[0-转载 2012-02-16 09:15:11 · 844 阅读 · 0 评论 -
silverlight base64编码 Image
将经Base64编码后的位图(png、jpg)字符串重新还原成图片显示: public classPhotoConverter { publicBitmapImage PhotoConvert(string value) { byte[] image转载 2012-02-23 14:51:55 · 1009 阅读 · 0 评论 -
C# double float int string 与 byte数组 相互转化
在做通信编程的时候,数据发送多采用串行发送方法,实际处理的时候多是以字节为单位进行处理的。在C/C++中 多字节变量与Byte进行转化时候比较方便 采用UNION即可废话少说看示例:typedef union{double data_df;byte data_b[8];}DoubleYByte;本示例实现了double与byte的相互转化typedef un转载 2012-02-23 10:43:49 · 9905 阅读 · 0 评论 -
控制台或Winform程序中如何编码或解码Server.URLEncode
在Asp.net中可以使用Server.HTMLEncode和Server.URLEncode 将文本或URL的特殊字符编码,但在控制台或Winform程序中没有办法使用到这些方法,解决办法:右击项目==》添加引用==》.NET==》System.Web==》确定System.Web.HttpUtility.HtmlEncode(str);System.Web.Ht转载 2012-02-07 11:32:24 · 2890 阅读 · 0 评论 -
Silverlight4、5单元测试
1.到http://silverlight.codeplex.com/下载Silverlight Toolkit后安装,Silverlight单元测试框架会自动安装,如果是Silverlight5版本的toolkit则测试框程序集在C:\Program Files (x86)\Microsoft SDKs\Silverlight\v5.0\Toolkit\dec11\Testing下面,分别是原创 2012-09-10 18:08:09 · 1922 阅读 · 0 评论 -
WPF中禁止输入和粘贴非数值字符
控件TextBox,相关事件KeyDown、TextChanged,事件处理函数如下:private void textBox1_KeyDown(object sender, KeyEventArgs e) { TextBox txt = sender as TextBox; //屏蔽非法按键 if ((原创 2012-12-19 19:28:27 · 4596 阅读 · 1 评论 -
C#的访问修饰符
转自MSDN:http://msdn.microsoft.com/zh-cn/library/ba0a1yw2.aspx使用访问修饰符 public、protected、internal 或private 可以为成员指定以下声明的访问级别之一。声明的可访问性含义public访问不受限制。protec转载 2013-07-28 14:34:35 · 849 阅读 · 0 评论 -
C#垃圾回收Finalize 和Dispose的理解
C# 中的析构函数实际上是重写了 System.Object 中的虚方法 Finalize三种最常的方法如下: 1. 析构函数;(由GC调用,不确定什么时候会调用) 2. 继承IDisposable接口,实现Dispose方法;(可以手动调用。比如数据库的连接,SqlConnection.Dispose(),因为如果及时释放会影响数据库性能。这时候会用到这个,再如:文件的打开,如果转载 2013-07-26 23:19:05 · 3730 阅读 · 0 评论 -
silverlight在XAML中设置控件焦点
参考:http://stackoverflow.com/questions/4936204/set-focus-to-uielement-i-e-textbox-in-xaml-using-silverlight-41.首先需要添加对System.Windows.Interactivity.dll程序集的引用,这是一个blend提供的程序集2.定义一个类,继承自TargetedTrigge原创 2013-07-02 11:06:36 · 1821 阅读 · 0 评论 -
归纳一下:C#线程同步的几种方法
我们在编程的时候,有时会使用多线程来解决问题,比如你的程序需要在 后台处理一大堆数据,但还要使用户界面处于可操作状态;或者你的程序需要访问一些外部资源如数据库或网络文件等。这些情况你都可以创建一个子线程去处理, 然而,多线程不可避免地会带来一个问题,就是线程同步的问题。如果这个问题处理不好,我们就会得到一些非预期的结果。 在网上也看过一些关于线程同步的文章,其实线程同步有好几种方法,下面我就转载 2013-07-14 16:05:34 · 2148 阅读 · 0 评论 -
C#中的线程同步
同步的本质:下面的列表总结了.NET同步线程的工具:阻塞函数:Sleep:阻塞线程一定时间。Join:阻塞另一个线程至本线程完成。加锁结构:lock:保证只有一个线程可以存取同一个资源,或操作一段代码。不能跨进程。速度快。Mutex:保证只有一个线程可以存取同一个资源,或操作一段代码。可以用来阻止一个程序启动多个线程。可以跨进程,速度一般。Semaphore:保证不超过某个转载 2013-07-14 14:49:28 · 848 阅读 · 0 评论 -
C# Lock 解读
最近在研究.NET分布式缓存代码,正好涉及Lock,看了网上的文章,总结了一些Lock相关的知识,供大家一起学习参考。 一、Lock定义 lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。它可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其他线程必须等待。这是通过在代码块运行期间为给定对象获取互斥锁来实现的。转载 2013-07-14 14:33:58 · 890 阅读 · 0 评论 -
导出 Silverlight DataGrid to Excel XML/CSV
参考自http://www.codeproject.com/Articles/45731/Export-Silverlight-DataGrid-to-Excel-XML-CSV和http://www.cnblogs.com/itelite/archive/2012/11/28/2792545.html源码如下:using System;using System.Collections.原创 2013-06-19 10:01:42 · 857 阅读 · 0 评论 -
OleDb操作不同版本的Excel
1、操作Excel2007以前(不含2007)的连接字符串 string strConn = "Provider=Microsoft.Jet.OleDb.4.0;" + "data source=" + excelFilePath + ";Extended Properties='Excel 8.0; HDR=Yes;IMEX=1'"; //此连接只能操作Excel2007之前(.x转载 2013-03-26 18:42:24 · 1236 阅读 · 0 评论 -
Silverlight中TextBox禁止输入和粘贴非数值字符
说明:Silverlight程序中有一个文本框控件TextBox名为textBox1,TextChanged事件处理函数如下,利用正则表达式禁止输入和粘贴非数值字符。private string originStr = "";//存放符合要求的数值字符串 private Regex regex = new Regex(@"^[+-]?(?!0\d)\d+(\.[0-9]+)?$原创 2013-01-08 14:28:28 · 1876 阅读 · 0 评论 -
Silverlight中TextBox禁止输入和粘贴非数值字符
说明:Silverlight程序中有一个文本框控件TextBox名为textBox1,TextChanged事件处理函数如下,利用正则表达式禁止输入和粘贴非数值字符。允许输入的特殊字符包括一个英文句点和一个负号,且句点必须不能是第一个字符,如果有负号则必须是第一个字符。private string originStr = "";//存放符合要求的数值字符串 private Re原创 2013-01-08 14:36:33 · 1002 阅读 · 0 评论 -
C#中禁止一个程序打开多次
[STAThread] static void Main() { //预防程序启动多个 bool flag=false; System.Threading.Mutex mutex=new System.Threading.Mutex(true,转载 2011-07-15 17:57:26 · 1303 阅读 · 1 评论 -
c#如何检查局域网内服务器是否连通(调用外部Ping命令获取网络连接情况)
使用C#调用外部Ping命令获取网络连接情况以前在玩Windows 98的时候,几台电脑连起来,需要测试网络连接是否正常,经常用的一个命令就是Ping.exe。感觉相当实用。现在 .net为我们提供了强大的功能来调用外部工具,并通过重定向输入、输出获取执行结果,下面就用一个例子来说明调用Ping.exe命令实现网络的检测,希望对.net初学者有所帮助。首先,我们用使用Process类,转载 2011-06-19 09:08:00 · 8309 阅读 · 1 评论 -
C#获取指定IP的主机名
以下代码在visiual studio 2003下调试通过。方法一:使用GetHostByAddress函数string mystartIP = "222.206.84."; // IP地址string myip;int s;string name;for(s = 1; s { myip = mystartIP + s.ToStri转载 2011-06-19 09:56:00 · 6162 阅读 · 0 评论 -
VS2008使用技巧
<br />VS2008 使用小技巧——快捷键<br />1. 怎样调整代码排版的格式?<br />选择:编辑—>高级—>设置文档的格式 或 编辑—>高级—>设置选中代码的格式。<br />格式化cs代码:Ctrl+k+f 格式化aspx代码:Ctrl+k+d<br />2. 怎样跳转到指定的某一行?<br />两种方法:Ⅰ. Ctrl+G Ⅱ. 双击状态栏中的行号<br />3. 怎样创建矩形选区?<br />两种方法:Ⅰ. 摁住alt键,然后拖动鼠标即可。<br />Ⅱ. 按住Shift+Alt点击矩形转载 2010-09-06 14:08:00 · 692 阅读 · 0 评论 -
事件与委托要点
1、事件可以是静态的:如public static event MyDelegate OnEat;2、事件存在于类内,不能在类外声明,因为事件是隶属于一个对象的,只能在类内声明。3、事件是一种委托类开型。4、委托可以在类内或类外声明,声明方式如下:public delegate string MyDelegate(string name,int age);5、委托是一种引用类型。其创建实例方式如下:MyDelegate mydel=new MyDelegate();5、与委托关联的方法必须与委托有相同的返回原创 2010-08-13 18:58:00 · 470 阅读 · 0 评论 -
实现IEnumable以迭代对象示例
<br />using System;<br />using System.Collections.Generic;<br />using System.Text;<br />using System.Collections;<br />namespace StaticTest<br />{<br /> class Person //被迭代对象<br /> {<br /> public string fName;<br /> public stri原创 2010-08-13 18:42:00 · 2068 阅读 · 0 评论 -
事件与委托的匿名方法使用方法示例
<br />第一种方法:由于事件也是委托类型,可以采用如下方式:<br />事件的匿名方法:<br />Public Form1<br />{<br /> this.Click+=delegate(Object sender,EventArgs e)<br /> {<br /> MessageBox.Show("我是一个窗体。");<br /> };<br />}<br />委托的匿名方法:<br />public delegate void MyDelegate();<br原创 2010-08-13 19:04:00 · 901 阅读 · 0 评论 -
枚举与字符串的互化示例
<br />using System;<br />public class ParseTest<br />{<br /> enum Colors { Red = 1, Green = 2, Blue = 4, Yellow = 8 };<br /> public static void Main()<br /> {<br /> Console.WriteLine("The entries of the Colors Enum are:");<br /> fore原创 2010-08-13 18:35:00 · 502 阅读 · 0 评论 -
结构和类的区别
1、结构用于小的数据类型,所有结构派生自System.ValueType类,不能再继承其它基类,同时也不能被继承。而类一般用于大的数据类型如人类,动物类等,支持继承。2、结构和类一样可以有成员方法,字段。3、结构中的成员字段不能被显式初始化,要通过默认无参构造器初始化,而类的字段可以显示初始化,默认由无参构造器初始化。4、结构的无参构造器总是存在,无论是否手动添加了其它构造器,而类只要手工添加任一个构造器,就不会再有默认的无参构造器,当然可以自行添加,用于成员字段的初始化。5、结构可以采用两种方式声明:原创 2010-08-13 16:54:00 · 4046 阅读 · 0 评论 -
C#异常类型
<br />c#中异常捕获catch{}常用的异常类型 <br />Exception 类 <br /> 描述 <br /><br />SystemException 其他用户可处理的异常的基本类 <br />ArgumentException 方法的参数是非法的 <br />ArgumentNullException 一个空参数传递给方法,该方法不能接受该参数 <br />ArgumentOutOfRangeException 参数值超出范围 <br />ArithmeticException 出现算术上原创 2010-08-15 14:20:00 · 7668 阅读 · 1 评论 -
几种排序算法
//冒泡排序法public void Sort(int[] source) { Console.WriteLine("冒泡算法开始......"); Auxiliary.DisplayArray(source); int j, temp; j = 1; while ((j { for (int i = 0; i原创 2010-08-13 17:31:00 · 385 阅读 · 0 评论 -
什么是重写
重写也即覆盖,发生在基类和派生类之间,一个virtual方法可以在多个派生类中重写。重写条件:派生类中重写方法的访问修饰符权限要>=基类重写方法和虚方法返回类型要一样方法要同名参数列表(参数类型和参数个数)要一样。基类一个方法:protected virtual string GetName(string strName){ return strName+" liancs";}基类的重写方法如下:public override string GetName(string strName){原创 2010-08-13 16:27:00 · 1708 阅读 · 0 评论 -
C#异常处理
例:static void Main(string[] args) { // // TODO: 在此处添加代码以启动应用程序 // Console.WriteLine("请输入被除数:/n"); int intFirst=Int32.Parse(Console.ReadLine()); Console.WriteLine("请输入除数:/n"); int intSecond=Int32.Parse(Console.ReadLine()); try { if(int原创 2010-08-13 15:43:00 · 858 阅读 · 0 评论 -
C#如何访问水晶报表中的对象,以及动态改变对象的内容?
首先引入命名空间using CrystalDecisions.CrystalReports.Engine;比如要访问水晶报表中的文本对象(TextObject),先要实例化一个水晶报表对象。现假设水晶报表的一个文本对象的名称为Text1,内容为“张三”,现要在代码中把其动态改成“李四”,如下CrystalReport1 report1=new CrystalReport1();TextObject text=(TextObject)report1.ReportDefinition.ReportObjects原创 2010-09-25 13:14:00 · 2169 阅读 · 1 评论 -
Asp.net DataTable添加列和行的方法
Asp.net DataTable添加列和行的方法方法一:DataTable tblDatas = new DataTable("Datas");DataColumn dc = null;dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));dc.AutoIncrement = true;//自动增加dc.AutoIncrementSeed = 1;//起始为1dc.AutoIncrementStep = 1;//步长为1dc.Allow转载 2010-10-11 15:58:00 · 1304 阅读 · 0 评论 -
C#获取指定数据库服务器下某用户可访问的数据库列表
代码如下: SqlConnection conn = new SqlConnection("server=数据库服务器名;uid=sa;pwd=sa"); SqlCommand cmd = new SqlCommand("select name from sys.databases",conn); try {原创 2011-06-18 17:47:00 · 3053 阅读 · 1 评论 -
C#获取局域网内sql server数据库服务器列表
1、添加对COM组件SQLDMO.dll的引用,对应组件名为Microsoft SQLDMO Object Library2、添加引用后将右击引用属性,将"嵌入互操作类型"设为false3、点击按钮,列表显示在combobox中,代码如下: /// /// 显示当前局域网内可用sqlserver数据库服务器列表 /// //转载 2011-06-18 17:29:00 · 4384 阅读 · 2 评论