随笔分类 - C#学习
关于C#的学习资料都在这儿了
摘要:前些天在写个小程序,用到DataGridView,想给它动态的显示行号。不是很费劲GOOGLE了一下,这GOOGLE不要紧,发现了不少问题。以下基本上都是GOOGLE搜索出来的网上的一些解决方法,千篇一律都是这样的:只要用过这段代码的人就应该发现这段代码是运行出错的。原因就出在RowsRemoved事件里,会抛出一个Index outof range的异常。然而就是这么一段有错的代码,几乎充斥着整...
阅读全文
摘要:Net将整个系统的类型分成两大类 —— 值类型 和 引用类型。值类型是放在堆栈里的,而引用类型是放在内存堆里的。 大多数面向对象的语言都有两种类型:原类型(语言固有的类型,如整数、枚举)和类。虽然在实现模块化和实体化方面,面向对象技术体现了很强的能力,但是也存在一些问题,比如现在提到的这个系统类型问题,历史告诉我们两组类型造成了许多问题。首先就是兼容性问题,这个也是Mic...
阅读全文
摘要:这是一个关于数据字典使用的例子主要关注这里面的对于GetHashCode的重载的算法。这里GetHashCode使用的算法将数字向左移动16位,再与原来的数字进行异或操作,最后将结果乘以十六进制数15051505。散列码在整数取值区域上的分布相当均匀。
阅读全文
摘要:如题,主要使用AsReadOnly这个方法就可以了
阅读全文
摘要:数据库中的数字和编程语言中的数字有显著不同的特征,因为数据库中的数字可以为空,C#中的数字不能为空。Int32是一个结构,而结构是值类型的,所以它不能为空。在C#中可以使用Nullable<T>结构很容易解决这个问题。定义可空类型:可以检查Nullable<T>的HasValue和Value属性可空数据类型还可以使用算数运算符。变量x3是变量x1和x2的和。如果这2个可空变...
阅读全文
摘要:通过昨天的例子可以看到泛型类型实现IAccount接口的要求过于严厉。为了将Accumulate()方法改为泛型方法,还要去创建一个IAccount接口,然后让Account类继承IAccount接口,然后....杯具( ⊙ o ⊙ )啊! 在今天的例子中,我们可以创建独立于任何接口的泛型方法。这个就需要泛型委托机制来帮忙实现了。下面是修改后的泛型委托的例子郁闷了,编译有个错误:Error1) e...
阅读全文
摘要:使用泛型可以定义接口,接口中的方法可以带泛型参数。下面是一个泛型接口的例子:对于一个Person类的实现:除了定义泛型类型之外,还可以定义泛型方法。 在泛型方法中,泛型类型用方法声明来定义。下面示例一个交换的泛型方法:泛型方法的调用,有两种方法:一, 把泛型类型赋予方法调用或者直接像非泛型方法那样调用, 这是因为C#编译器会通过调用Swap方法来获取参数的类型。下面的例子使用泛型方法累加集合中所有...
阅读全文
摘要:在创建泛型类时,需要一些其他C#关键字。例如,不能把null赋值给泛型类型,此时可以使用default关键字。如果泛型类型不需要object类的功能,但需要调用泛型类上的某些特定方法,就可以定义约束。默认值约束继承静态成员1.默认值 现在给DocumentManager<T>类添加一个GetDocument()方法给类型T指定null,但是不能把null赋值给泛型类型泛型类型也可以实...
阅读全文
摘要:首先看下一个一般的,非泛型的简化链表类。下面这个是运行的main方法这个里面的//list1.AddLast("6"); 是非法的,因为.NET似乎不能自动把字符串转化为int类型。那样的话,int i in list1这句话就要报错了。下面看泛型后的链表类:运行的Main函数这里面需要注意IEnumberable 有 泛型和非泛型两者用途,对应的使用的时候,加上适当的命名空间。不然会编译报错。F...
阅读全文
摘要:泛型最大的4个好处:1,性能 分析下面的例子 ArrayList的Add()方法定义为需要把一个对象作为参数,所以要装箱一个整数类型。在读取ArrayList中的值时,要进行拆箱,把对象转换为整数类型。 装箱和拆箱操作容易使用,但是性能损失比较大,迭代许多项时尤其如此。 List<T>类不是用对象,而是在使用时定义类型。在下面的例子中,List<T>类的泛型类型定义为...
阅读全文
摘要:MSDN上的一个不错的例子: 那从内存清除密码的句子有个问题。 需要再看看这个问题到底是怎么回事,怎么解决cannot convert from Sytem.InPtr to ref string把下面这句public static extern bool ZeroMemory(ref string Destination, int Length);用这句替换就OK了internal static...
阅读全文
摘要:转载的,来看看今天,看到网友咨询DES加密的事,就写了下面的类库,sharing 一下,欢迎多交流使用的例子:
阅读全文
摘要:1.用Pascal规则来命名方法和类型。 Pascal 大小写形式是指名称中的单词的第一个字母大写public class DataGrid{public void DataBind(){}}2.用Camel规则来命名局部变量和方法的参数. camel大小写形式类似于Pascal大小写形式,但名称中第一个单词的第一个字母不是大写。public class Product{private strin...
阅读全文
浙公网安备 33010602011771号