随笔分类 -  C#技术

摘要:C#判断字符串为空的 方法们 按照性能排序:a.length==0 > a==string.Empty > a=""C#中大多数时候“”和string.Empty可以相互使用,但是string.Empty性能更好,原因:“”:分配一个长度为0的存储空间string.Empty:内存并没有为字符分配空间。是否为空的最佳方法:(a!=null&&a.Length==0)C#2.0字符串是否为空的方法 string,IsNullorEmpty(a) == true 说明a是NULL或者是“”string.Empty与NULL的区别:string.Emp 阅读全文
posted @ 2011-09-15 18:04 八神吻你 阅读(7906) 评论(3) 推荐(0) 编辑
摘要:自动属性可以避免原来这样我们手工声明一个私有成员变量以及编写get/set逻辑,在VS2008中可以像下面这样编写一个类,编译器会自动地生成私有变量和默认的get/set 操作。你也可以分别定义get和set的“protected”等访问级别。在.Net2.0框架下,我们可以这样写一个User类:public class User{ private int _id; private string _name; private int _age; public int Id { get { return _id; } set { _id ... 阅读全文
posted @ 2011-09-06 13:57 八神吻你 阅读(919) 评论(0) 推荐(0) 编辑
摘要:关于C#中的abstract与virtual的用法一直迷糊。于是自己动手写一写试试。1.第一种情况view sourceprint?1//抽象动物类,声明抽象方法Shout(),注意抽象方法没有方法体2abstract class Animal3 {4 public abstract void Shout();5 }view sourceprint?01// 猫类,继承动物类,覆盖抽象Shout()方法02class Cat:Animal03 {04 public Cat()05 {06 }0708 pub... 阅读全文
posted @ 2011-09-06 13:49 八神吻你 阅读(599) 评论(0) 推荐(0) 编辑
摘要:is: 检查一个对象是否兼容于其他指定的类型,并返回一个Bool值,永远不会抛出异常objecto=newobject();if(oisLabel){Labellb=(Label)o;Response.Write("类型转换成功");}else{Response.Write("类型转换失败");}在上面的代码,CLR实际上会检查两次对象的类型,is操作符先核实一次,如果o兼容于Lable,那么在(Label)o时会再次核实一次,效率比较低,不建议使用as:与强制类型转换是一样的,但是永远不会抛出异常,即如果转换不成功,会返回nullobjecto=new 阅读全文
posted @ 2011-08-18 17:10 八神吻你 阅读(1233) 评论(0) 推荐(0) 编辑
摘要:结构是一种值类型,通常用来封装一组相关的变量,结构中可以包含构造函数、常量、字段、方法、属性、运算符、事件和嵌套类型等,但是如果同时包含上述几个类型则应该考虑使用类。结构的特点:·结构式值类型·向方法传递结构时,结构是通过传值方式传递的,而不是作为引用传递的。·结构的实例化可以不适用new运算符·结构可以声明构造函数,但他们必须带参数·一个结构不能从另一个结构或类继承·结构可以实现接口·在结构中初始化实例字段是错误的。聊了些特点,下面举个小例子大家参考下:using System;using System.Collectio 阅读全文
posted @ 2011-08-17 09:48 八神吻你 阅读(651) 评论(1) 推荐(0) 编辑
摘要:String.IndexOfString.IndexOf 方法 (Char, Int32, Int32)报告指定字符在此实例中的第一个匹配项的索引。搜索从指定字符位置开始,并检查指定数量的字符位置。String.IndexOf(value, startIndex, count)参数value:要查找的 Unicode 字符。 startIndex:搜索起始位置。 count:要检查的字符位置数。返回值(Int32):如果找到该字符,则为 value 的索引位置;否则如果未找到,则为 -1。 示例:string str = "深圳市盈基实业有限公司国际通邓事文*深圳市盈基实业有限公司国 阅读全文
posted @ 2011-08-15 12:37 八神吻你 阅读(685) 评论(0) 推荐(0) 编辑
摘要:Reflection,中文翻译为反射。这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息,例如:Assembly类可以获得正在运行的装配件信息,也可以动态的加载装配件,以及在装配件中查找类型信息,并创建该类型的实例。Type类可以获得对象的类型信息,此信息包含对象的所有要素:方法、构造器、属性等等,通过Type类可以得到这些要素的信息,并且调用之。MethodInfo包含方法的信息,通过这个类可以得到方法的名称、 阅读全文
posted @ 2011-08-11 13:38 八神吻你 阅读(2015) 评论(3) 推荐(0) 编辑
摘要:.NET 中C#的switch语句的语法如下(switch,case和default是关键字):switch ( controllingExpression ){ case constantExpression : statements break; case constantExpression : statements break; ... default : statements break;} controllingExpression(控制表达式)只求值一次。然后,从其constantExpression值等于controllingExpression值的case开始,... 阅读全文
posted @ 2011-08-04 14:10 八神吻你 阅读(159048) 评论(2) 推荐(6) 编辑
摘要:1.字符串串联(String Concatenation)var q = from c in db.Customers select new { c.CustomerID, Location = c.City + ", " + c.Country }; 语句描述:这个例子使用+运算符在形成经计算得出的客户Location值过程中将字符串字段和字符串串联在一起。2.String.Lengthvar q = from p in db.Products where p.ProductName.Length < 10 select p; 语句描述:这个例子使用Length属性 阅读全文
posted @ 2011-08-02 15:06 八神吻你 阅读(27588) 评论(1) 推荐(0) 编辑
摘要:linq to xml操作XMLLINQ to XML提供了更方便的读写xml方式。前几篇文章的评论中总有朋友提,你为啥不用linq to xml?现在到时候了,linq to xml出场了。.Net中的System.Xml.Linq命名空间提供了linqto xml的支持。这个命名空间中的XDocument,XElement以及XText,XAttribute提供了读写xml文档的关键方法。1. 使用linq to xml写xml:(创建)使用XDocument的构造函数可以构造一个Xml文档对象;使用XElement对象可以构造一个xml节点元素,使用XAttribute构造函数可以构造元 阅读全文
posted @ 2011-07-21 09:50 八神吻你 阅读(505) 评论(0) 推荐(0) 编辑
摘要:ArrayList类是一个特殊的数组。它来自于System.Collections命名空间;通过添加和删除元素,就可以动态改变数组的长度.一、优点1)支持自动改变大小的功能2)可以灵活的插入元素3)可以灵活的删除元素二、局限性跟一般的数组比起来,速度上差些。因为它是动态数组,初始化大小容量4,当数据存满时扩容是以当前数组容量大小的2倍扩容,之后再把数组元素一个一个的存入,数组在扩容时浪费一定的内存空间,和存储时间,而且,元素添加是一个装箱的过程,所以说,跟一般的数组比起来,速度上差些。三、ArrayList初始化 ArrayList有三种初始化....1)不初始化起容量 ArrayList a 阅读全文
posted @ 2011-07-20 09:33 八神吻你 阅读(868) 评论(2) 推荐(0) 编辑
摘要:通过XmlDocument读写Xml文档有如下一段Xml:view sourceprint?<?xml version="1.0"encoding="utf-8" ?> <students> <!--我是一段注释文字--> <student name="张平"> <courses> <course name="语文?"> <teacherComment> <![CDATA[ 这里是语文老师的批注 ]]> </tea 阅读全文
posted @ 2011-07-19 12:51 八神吻你 阅读(1710) 评论(0) 推荐(0) 编辑
摘要:.net发送邮件 需引用 System.Net.Mail;public void SendEmail(string from,string to,string subject, string body) { MailMessage message = new MailMessage(from,to); message.Subject = subject; message.IsBodyHtml = true; message.Body = body; SmtpClie... 阅读全文
posted @ 2011-07-18 12:50 八神吻你 阅读(322) 评论(0) 推荐(0) 编辑
摘要:C#反射设置和读取类的属性 命名空间引入using System.Reflection;首先定义一个类 public class Dog { public string DogName { get; set; } }类的实例:Dog mydog=new Dog();获取实例类型 Type t = typeof(Dog);或者Type t = mydog.GetType();有了这个类型t,就可以利用反射对这个实例为所欲为了:设置属性值:t.GetProperty("DogName").SetValue(mydog, "pet", null);获取属性值: 阅读全文
posted @ 2011-07-18 12:42 八神吻你 阅读(477) 评论(0) 推荐(0) 编辑
摘要:cookie读、写、删除 创建cookievar cookie = new HttpCookie("member");cookie.Values.Add("memberName", name);cookie.Values.Add("memberType", type.ToString());cookie.Expires = DateTime.Now.AddDays(30);Response.Cookies.Add(cookie); 读Cookie var cookie = Request.Cookies["member&qu 阅读全文
posted @ 2011-07-18 12:38 八神吻你 阅读(352) 评论(0) 推荐(0) 编辑