随笔分类 - ASP.NET学习笔记
摘要:一、原理比较1.string 是不可变的,包括长度和其中的任何字符2.stringbuilder 是可变的,专门用来对字符串和字符执行动态操作的类二、操作性能比较在日常开发中尽量使用 stringbuilder ,而非 string
阅读全文
摘要:一、class 是引用类型,struct 是值类型1.复制包含结构的变量时,讲复制所以数据,对新副本所做的修改都不会改变旧副本;2.类是引用类型,类之间的复制只是复制引用;二、class 支持继承,struct 没有继承性,不能从另外个结构和类继承,自身也不能被继承,是隐式的sealed,但支持接口继承;三、内部区别四、使用方式1.实现一个主要用于储存数据时,用struct;2.struct 的占用的是堆栈空间,所以只适用于小的数据储存;3.结构数据具有更高的效率;4.结构表示点、矩形和颜色这样的对象时,结构的成本低;5.在表现抽象和多级别的对象时,类是最好的选择;6.在大多数情况下,该类型只
阅读全文
摘要:一、公共变量和属性的区别1.属性可以通过 get set 控制读写,而变量不可以;2.属性可以进行赋值操作,变量不可以;3.现实中,当我们对一个对象进行数据绑定时,属性是可以正常绑定的,变量不行;所以,当需要讲类中的一个值设为 public 时,使用属性而不是变量;二、参数修饰符 Params、out 和 ref 的区别1.params 关键字后不允许存在其他的参数,且方法声明中只允许存在一个 params;可以让方法有可变的参数2.out在方法中对 out 修饰的参数所做的修改都反映在该变量中不必初始化要作为参数的变量;因为进入方法后都会清空;属性不是变量,不能作为out 的参数传递如果两个
阅读全文
摘要:一、抽象类1.抽象类不是必须有抽象属性和抽象方法,声明抽象方法后必须声明抽象类;2.子类必须 override 基类的抽象方法;二、接口1.只能包含方法的声明;2.接口中不能包含常量、字段、构造函数、析构函数或静态成员;3.接口中的所有成员都默认为public;4.子类必须实现接口中所有成员;5.一个类可以实现多个接口,用逗号隔开;6.一个接口可以有多个接口,必须实现父接口中的所有成员;三、抽象类和接口的区别1.抽象类是一个不完整的类,需要进一步细化;而接口只是一个行为的规范或规定;2.抽象类的方法默认为虚,而接口中的方法默认为非虚,也可以声明为虚的;
阅读全文
摘要:一、sealed 密封类不能被继承,密封方法可以重写基类中的方法,但本身不能在任何子类中进行重写。当应用于方法和属性时,必须始终和override一起使用 。二、new 显示隐藏从基类继承的成员,不使用new 也是允许的,但会有警告。三、virtual 修饰的方法和属性被称为虚成员,默认情况下方法是非虚拟的,非虚方法不能重写。1.静态属性上不可使用 virtual2.通过使用 override 在子类中重写虚拟继承属性四、abstract 指示该类只能是其他类的基类抽象类:1.不能实例化2.非抽象子类必须包含基类所有抽象方法和抽象访问器的实现抽象方法:1.抽象方法是隐式的virtual 方法2
阅读全文
摘要:一、private 只能在类里面才可以调用二、protected 只能在类和子类中可以调用三、public 完全开放,任何类和成员都可以调用四、internal 同一应用程序集内部(单独的项目,而不是整个解决方案)五、protected internal 只能在同一应用程序集内本类、子类中调用public 可以跨程序集访问的
阅读全文
摘要:readonly 表示只读,const 表示不变常量一、都是用来标识常量的二、const 必须在声明的同时赋值;readonly 可以在初始化的过程中赋值,因此,根据所使用的构造函数,readonly 字段可能有不同的值。三、const 字段是编译时常数,readonly 字段可用于运行时常数1.const 要求编译时计算出确定的值,去替换调用这个常数的每一个地方,因此,不能从变量中提取值来初始化常量2.readonly 是在计算时执行的,在运行时才确定的该值四、const 默认就是静态的,readonly 设置成静态的就必须显式声明五、const 修饰的引用类型只能是 string 或者值为
阅读全文
摘要:== 用来比较值是否相等, Equals 用来比较引用相等,意味着比较的不是两个对象,而是两个对象的引用,比较两个对象的引用是否引用的是同一个对象。一、对值类型值相等,则相等二、对于引用类型1. ==比较的是两个变量的值是否相等,或两个引用是否指向同一个内存地址2.equals 比较两个对象指向的内存空间的内容是不是相同;对于引用类型,== 类似于比较的是文件夹的路径是否相同,而 equals 方法比较的是文件夹中的内容是不是一样==判断值类型,值相等则为true;equals 也一样系统并没有给 s2 重新分配内存,而是将“test” 指向 s2,这叫做内存的优化s3 和 s4 是值类型o3
阅读全文
摘要:一、设置断点,跟踪调试1.F9设置断点,F10 逐过程进行调试,F11 逐语句进行调试2.在断点语句行,点击右键,断点-条件,弹出框设置条件二、页面跟踪在页面顶部添加“Trace=true”,即启动该页面的跟踪,使用 Trace.Write 和 Trace.Warm 可以向页面跟踪信息中输入自己想要的信息。三、调试客户端脚本1.启用客户端脚本调试IE-工具-“Internet选项”-高级-禁用脚本调试2.在VS2008中按 F5 或 F10 启动调试;在VS2005 中无法在断点中停下的,在 IE-查看-脚本调试程序-打开,回到VS2005设置断点,刷新即可四、异常捕获五、页面级错误处理在单独
阅读全文
摘要:一、加速开发环境1.禁用启动页工具-选项-启动时-显示空环境 2.去掉启动屏右键快捷方式-属性-目标-最后加入“/nosplash”3.关闭动态帮助VS退出之前,关闭“动态帮助”二、快捷操作1.自定义快捷工具工具-自定义-命令2.多文件查看在打开的选项卡中拖动想要查看的文件到右边或者下面,就会出现虚线框3.同一代码拆分查看鼠标移动到滚动条上方,出现双向箭头时向下拖4.管理重复使用的代码片断选择要复用的代码片段-将代码拖到工具箱的常规选项卡上,显示“文本...”可以点右键改名-使用时双击要插入的代码5.渐进式搜索按“Ctrl+I” 出现望远镜图标,状态栏出现“渐进式搜索”,输入要查找的字符,自动
阅读全文
摘要:一、using别名当同一个cs 引用不用的命名空间,但是又存在相同名字的类型,此时可以使用别名。二、@ 的运用1.实现 “\” 当普通字符使用2.@ 表示的跨行字符串,不用使用连接符,sql 语句是很有用3.保留关键字标识符@作为标识符的一个字符,以允许保留关键字作为自己定义的标识符,当普通字符来使用
阅读全文
摘要:一、事件的运行原理事件接收器有一个方法,当发生已注册事件时,就执行这个事件的处理程序,使用委托作为发送器和接收器的中介,发送器定义接收器要使用的委托,接收器将事件处理程序注册到事件中。Form的构造函数:EventHandler 是事件用于把处理程序(Button_Click)赋予事件(Click)的委托EventHandler委托已被.NET Framework 定义了,所以定义的事件都要使用它;必须使用相同的签名:1.必须是 void, 事件处理程序不能有返回值2.object 参数是引发事件的对象,所以可以把一个事件赋予多个对象,例如可以根据sender 判断是哪个按钮;3.EventA
阅读全文
摘要:实例:一、委托的使用1.声明一个委托2.把委托当做参数传入3.根据传入的委托,调用相应的方法二、委托总结1.委托包含的只是方法的地址2.避免了大量使用条件语句,同时使程序有更好的扩展性三、多播委托1.委托当做参数和 string 的地位是一样,所以可以如下图这样声明2.委托不同于 string 的一个特性:可以将多个方法赋给同一个委托,这既是多播委托调用这个委托时,将依次调用其所绑定的方法。3.第一次要使用“=”,第二次使用“+=”,可以如下简写4.同样,可以取消委托绑定的一个方法
阅读全文
摘要:一、继承的规则1.派生类可以添加新的成员,但不能移除已经继承成员;2.构造函数和析构函数不能被继承,基类中成员的访问方式只能决定派生类能否访问它们;3.派生类定义的新成员和继承的成员同名,只是覆盖,不是移除;4.类可以定义 虚方法、虚属性、虚索引指示器,派生类通过重载,实现多态;5.派生类只能继承一个基类,但可以实现多个接口。二、访问基类成员1.通过 base.方法名()静态方法中不可使用 base2.显式类型转换三、隐藏基类成员public new void SayHello() { }四、密封类、方法sealed 修饰符,修饰的类和方法不能被继承和重载五、抽象类和抽象方法1.使用 abst
阅读全文
摘要:1.取字符串长度2.截取变量名.Substring( 起始位置,截取位数)3.替换4.典型例子5.split6.字符串输出格式小技巧—输出21个A7.随机数用法8.int32.parse() int32.tryparse() convert.toint32() 用法和比较
阅读全文
摘要:选用的教材是:亮剑.NET_.NET深入体验与实战精要没有全部写进去,只是写了一些日常工作中能用到的,或者未来工作可能会用到的。建议配合着教材去学!这本书写的很好,作者是个经验丰富的前辈,建议大家去买一本,也算是对作者的支持!1.变量声明: int n=0;声明必须赋值;多变量声明:int a=1;b=2类型推断:var a=1;编译器会自动根据值推断变量类型,此句等价于 int a=1;2.作用域a.局部变量作用域:方法的起始的结束之间的大括号区域,一旦方法结束,变量消失。如果在方法外调用此局部变量会导致越界。b.类作用域:类主体的起始和结束之间的区域,类中定义的变量称为 field (字段
阅读全文

浙公网安备 33010602011771号