.NET中的泛型
一、 简介 泛型现在在任何一种语言中都被认为是一个高级的强有力的术语。当我在C++中第一次接触模板时,我对之有些疑惑。之后,我读了Bjarne Stroustrop的《The Design and Evolution of C++》,才发现模板的使用就象C中的宏和用之来取代的简单串替换模板一样容易。其实,模板和泛型是相同的东西-尽管它们的实现稍微不同。 C#泛型支持在使用点处才定义算法及其数据类型。在C#的一些早期版本中,我们可以证明没有泛型也可以工作,因为每种类型都是派生于一个公共基类型-object。这意味着程序员可以基于object类型定...
C#属性与索引器
using System; namespace PropertyIndexerApp{ class Class1 { [STAThread] static void Main(string[] args) { //创建一个MyClass实例 MyClass m = new MyClass (); for (int i=0;i<10;i++) { for (int j=0;j<10;j++) { //写、读第一个索引器 m[i*10,j]=i*10+j; Console.Write("No{0}{1}:{2}",i,j,m[i*10,j]); } Console.WriteLine (); } for (int i=0;i<m.StrCount ;i++) { //读第二个索引器 Console.WriteLine (m[i]); } //Set实例属性 m.StrCount = 5; //Get实例属性 for (int i=0;i<m...
DataGridView中dataSource数据绑定原理,及与Rows.Add添加效率
DataGridView中dataSource数据绑定原理,及与Rows.Add添加效率 首先看看,我们传统的绑定方法:DATASOURCE 1.F11找到DATASOURCE,是在SYSTEM.WIINDOWS.FORMS.DATAGRIDVIEW 2.REFLECTOR打开FORMS.DLL,跟到SYSTEM.WIINDOWS.FORMS.DATAGRIDVIEW下: 3.双击SET_DATASOURCE,我们看到: 4、仔细分析下,进入setDataConnetction 6.不难发现,notification.Initialized事件绑定了数据,进入datasource_initialized 7.this.owner.RefreshColumsAndRows()更新行列,就是在绑定数据啦!进入下一步: 8、先更新...
C#中强制转换、Convert转换 和Parse转换的差异(二)
v Parse , Covert.To,TryParse类型转换 (2009-02-08 15:14:26) 标签: 杂谈 分类: Asp.net 这2个方法都可以把string转换为int,那么他们有什么区别?什么时候该用什么?性能如何。其实在2.0里还有Int32.TryParse也实现了同样的效果。 using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string myString = "1234"; int myint = 0; myint = Convert...
C#中强制转换、Convert转换 和Parse转换的差异
以前经常为这几种数据类型转换方式而迷茫,这次为了彻底搞清它们之间的区别和优缺点,在网上查看了一些资料,并亲自验证了一下,在此写出来,一方面,为那些跟我有过相似经历的朋友们些许,另一方面,希望前辈们指导一下,看哪里有不合适的地方。 1 (int)变量名[强制类型转换]: 该转换方式主要用于数字类型转换,从int类型到long,float,double,decimal类型,可以使用隐式转换,但是从long类型到int类型就需要使用显式转换,也就是该数据类型转换方式,否则会产生编译错误。 &...
C#中double.tostring() C#保存小数位 C#四舍五入
在C#中大家都会遇到这种情况 double类型的数据,需要格式化(保留N未有效数字)或者是保留N为小数等情况,我们往往采取double.tostring("参数");的方法。下面就列出几个常用的方法。 double temp=3.1415926; (F)Fixed point:string str1=temp.toString("f1");//保留一位小数 四舍五入 结果:3.1 (F)Fixed point:string str2=temp.toString("f2");//保留两位小数,四舍五入 下面一次类推 结果:3.14 (N)Number:string str2=temp.toString("N");//保留 结果:3.14 (G)General (default):string str2=temp.toString("...
C#命名规范 C#控件的缩写大全
标准控件 1 btn Button 2 chk CheckBox 3 ckl CheckedListBox 4 cmb ComboBox 5 dtp DateTimePicker 6 lbl Label 7 llb LinkLabel 8 lst ListBox 9 lvw ListView 10 mtx MaskedTextBox 11 cdr MonthCalendar 12 icn NotifyIcon 13 nud NumeircUpDown 14 pic PictureBox 15 prg ProgressBar 16 rdo RadioButton 17 rtx RichTextBox 18 txt TextBox 19 tip ToolTip 20 tvw TreeView 21 wbs WebBrowser ...
在VS2005中如何打开VS2008创建的项目
在VS2005中 如何打开VS2008创建的项目?(特此记下来,希望对遇到同样问题的人有所帮助!嘿嘿) 今天有同事说用VS2008写的WINDOWS窗体项目COPY到家中,用VS2005打开时,提示这个项目是由高版本的VS创建的,无法打开. 由于是个.NET2.0的项目,在VS2005和VS2008下对写程序的人没什么不同,目录结构也相同,所以修改一下配置文件,应该也能用VS2005打开项目. 具体修改如下: 用记事本打开解决方案文件(.sln),将 Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 修改为: Microsoft Visual ...
String.Format格式说明
在写程序的过程中我们常常会遇到格式化字符串呀啥的,如:DataTime.ToString("yyyy-MM-dd")等,当然最常用的应该是String.Format了,非常方便好用! 但有时有些格式记不住,只要认真分析这个规律,其实它很好记,很快就掌握了,我特意收集起来,希望对大家有所帮助! C#格式化数值结果表 ------------------------------------------------------ 字符 -------- 说明 ------ 示例 ----------- 输出 C 货币 string.Format("{0:C3}", 2) $2.000...