随笔分类 - C#
摘要:泛型是.NET Framework 2.0中新增的,它主要有三个方面的好处:类型安全性、代码复用、减少装箱和拆箱的成本。关于泛型的基本概念,如果您不清楚,可以参考MSDN。这篇博客总结了一个特殊的部分:泛型约束什么是泛型约束?简而言之,泛型约束主要是对泛型所接受的参数的一些特性进行限制为什么要泛型约束?主要是更好地控制类型安全,当然这个说话是有些争议的,反对者说这样做是不是就会丧失泛型本来设计用来提高类型复用的灵活性。(关于这一点,从一定意义上说:是的)我记得在数据库设计中有一个重要的议题就是保证数据的完整性,里面最基础的手段也是使用约束。我认为适当地使用约束将保证我们的工作更加理想地完成。怎
阅读全文
摘要:IEnumerable public interface ICollection : IEnumerable, IEnumerable { void Add(T item); void Clear(); bool Contains(T item); void CopyTo(T[] array, int arrayIndex); bool Remove(T item); int Count { get; } bool IsReadOnly { get; } }再看IList ...
阅读全文
摘要:在2005年底微软公司正式发布了C# 2.0,与C# 1.x相比,新版本增加了很多新特性,其中最重要的是对泛型的支持。通过泛型,我们可以定义类型安全的数据结构,而无需使用实际的数据类型。这能显著提高 性能并得到更高质量的代码。泛型并不是什么新鲜的东西,他在功能上类似于C++的模板,模板多年前就已存在C++上了,并且在C++上有大量成熟应用。 本文讨论泛型使用的一般问题,比如为什么要使用泛型、泛型的编写方法、泛型中数据类型的约束、泛型中静态成员使用要注意的问题、泛型中方法重载的问、泛型方法等,通过这些使我们可以大致了解泛型并掌握泛型的一般应用,编写出更简单、通用、高效的应用系统。 什么是泛型..
阅读全文
摘要:通过使用泛型,我们可以极大地提高代码的重用度,同时还可以获得强类型的支持,避免了隐式的装箱、拆箱,在一定程度上提升了应用程序的性能。1.1 理解泛型1.1.1 为什么要有泛型?我想不论大家通过什么方式进入了计算机程序设计这个行业,都免不了要面对数据结构和算法这个话题。因为它是计算机科学的一门基础学科,往往越是底层的部分,对于数据结构或者算法的时间效率和空间效率的要求就越高。比如说,当你在一个集合类型(例如ArrayList)的实例上调用Sort()方法对它进行排序时,.Net框架在底层就应用了快速排序算法。.Net框架中快速排序方法名称叫QuickSort(),它位于Array类型中,这可以通
阅读全文
摘要:c#中设置Excel单元格格式1、全表自动列宽 mysheet.Cells.Select(); mysheet.Cells.Columns.AutoFit();2、合并 excelRangeParm.Merge(Missing.Value); 3、粗体设置 excelRangeParm.Font.Bold = true; 4、字体大小设置 excelRangeParm.Font.Size = 12; 5、水平对齐设置 excelRangeParm.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter; 6、垂直对齐设置 excelR...
阅读全文
摘要:C#格式化数值结果表字符说明示例输出C货币string.Format("{0:C3}", 2)$2.000D十进制string.Format("{0:D3}", 2)002E科学计数法1.20E+0011.20E+001G常规string.Format("{0:G}", 2)2N用分号隔开的数字string.Format("{0:N}", 250000)250,000.00X十六进制string.Format("{0:X000}", 12)Cstring.Format("{0:000.
阅读全文
摘要:通常我们在程序中需要调用WebService时,都是通过“添加Web引用”,让VS.NET环境来为我们生成服务代理,然后调用对应的Web服务。这样是使工作简单了,但是却和提供Web服务的URL、方法名、参数绑定在一起了,这是VS.NET自动为我们生成Web服务代理的限制。如果哪一天发布Web服务的URL改变了,则我们需要重新让VS.NET生成代理,并重新编译。在某些情况下,这可能是不能忍受的,我们需要动态调用WebService的能力。比如我们可以把Web服务的URL保存在配置文件中,这样,当服务URL改变时,只需要修改配置文件就可以了。 说了这么多,实际上我们要实现这样的功能:public
阅读全文
摘要:public class Test { //定义委托 public delegate void D_Math(int a, int b); public void Add(int a, int b) { Console.WriteLine("Add方法结果:{0}", a + b); } public void Cut(int a, int b) { Console.WriteLine("Cut方法结果:{0}", a - b); } } [TestClass] public class UnitTest1 { [TestMethod] public v
阅读全文

浙公网安备 33010602011771号