说明(2017-7-17 23:04:45):原文:C#中重写(override)和覆盖(new)的区别重写用关键字 virtual 修饰的方法,叫虚方法。可以在子类中用override 声明同名的方法,这叫“重写”。相应的没有用virtual修饰的方法,我们叫它实方法。重写会改变父类方法的功能。看下面演示代码:#region 重写public class C1{ public virtual string GetName() { return "叔祥"; }}public class C2 : C1{ public override strin...
【转载】 最近在学设计模式,学到创建型模式的时候,碰到单例模式(或叫单件模式),现在整理一下笔记。 在《Design Patterns:Elements of Resuable Object-Oriented Software》中的定义是:Ensure a class only has one instance,and provide a global point of access to。它的主要特点不是根据客户程序调用生成一个新的实例,而是控制某个类型的实例数量-唯一一个。(《设计模式-基于C#的工程化实现及扩展》,王翔)。也就...
12.3 泛型接口泛型接口的意义显然,泛型的主要作用就是定义泛型的引用类型和值类型。然而对泛型接口的支持对CLR来说也很重要。没有泛型接口,每次用非泛型接口如IComparable来操作值类型都会发生装箱,而且会失去编译时的类型安全性。这将严重制约泛型类型的应用范围,因此CLR提供了对泛型接口的支持。引用类型和值类型可以指定类型实参实现泛型接口,也可以保持类型实参的未指定状态来实现泛型接口。 泛型接口的实现以下泛型接口定...
刚刚学习了 Siki老师 的C#教程Linq部分,以下是笔记需要引用命名空间1using System.Linq;然后我们需要准备数据武林高手类///<summary>/// 武林高手类
///</summary>class MartialArtsMaster
{publicint ID { get; set; }publicstring Name { get; set; }publicint Age { get; set; }publicstring MenPai { get; set; }publicstring Kongfu { get; set; }publicint Level { get; set; }publicoverridestring ToString(){returnstrin...
委托最近自己在调试C#项目,发现经常可以看到委托和lambda表达式,各种花里胡哨的写法把我给整的云里雾里的,于是自己特意花了一点功夫来整理关于delegate的相关知识,方便自己日后查阅。何为委托委托是.NET中的寻址方法,和C++的函数指针很像;但是委托是类型安全的类,定义了返回类型和参数类型,也就是说委托一种用户自定义的类型,和普通的类一样;委托的使用声明委托 delegate void IntMethodInvoker(int x); //定义委托...
一.课堂内容 首先延续上节课的结尾,又讲了关于正则表达式的内容,以及c#中的exceptions相关的知识,以及delegates中文翻译为委托,以及c#的时间events,还有两个关于Windows phone app开发的视频教程。正则表达式就不用多说了,这光光拉出去都是一门值得深究的课程,关于events线程啊什么的,不管是在c++还是java中都是让我头疼的内容,关于Windows phone app的开发只能说非常有意思,但是感觉还是动手实践会学的比较快,可惜我...
本笔记摘抄自:https://www.cnblogs.com/PatrickLiu/p/7640873.html,记录一下学习过程以备后续查用。 一、引言 从今天开始我们开始讲结构型设计模式,结构型设计模式有如下几种:适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式。 创建型设计模式解决的是对象创建的问题,而结构型设计模式解决的是类和对象组合关系的问题。 今天我们开始讲结构型设计模式里面的第一个设计模式:适配器模式。...
6.5 函数的重载 函数重载允许创建多个同名函数。这些函数可使用不同的参数类型。(函数重载不能用函数返回值作为区分。如果只是返回值不同就能重载函数,那么调用函数时就无法知道调用哪个返回值函数(别忘了类型隐式转换),所以就没办法执行代码,所以不能用返回值来区分函数重载。) 例如,前面使用了下述代码,其中包含函数MaxValue():class Program { staticint MaxValue(int[] intArray) { int maxVal = intArray[0]...
/* 20160324 */
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace Ch06
{
class Program
{
//params 参数数组
static int SumVals(params int[] vals)
{
int sum = 0;
foreach (int val in vals)
{
sum += val;
}
return sum;
} //值引用, 1.val is not an cons...
原文:http://www.cnblogs.com/suoluo/p/5638566.html
1.面向对象的3要素:封装:将不需要显示的代码封装到一个方法中,只对外提供方法名,用户不需关心内部实现。继承:子类继承父类,公用父类的代码,大大提高了代码的重用,贴近生活也符合人类的编程思想。多态:使一样的方法具有不同的实现效果,大大简化了开发的难度。实现接口和继承父类都能实现多态。其他术语:接口[interface]:接口提供一套规则继承接口的子类都必须实现其中的方法,也是实现多态的一个途径。结构[struct]:结构...
4.4.3 for循环 这类循环可以执行指定的次数,并维护它自己的计数器。 要定义for循环,需要下列信息: 初始化计数器变量的一个起始值。 继续循环的条件,它应涉及到计数器变量。 在每次循环的最后,对计数器变量执行一个操作。 例如,如果要在循环中,使计数器从1递增到10,递增量为1,则起始值为1,条件是计数器小于或等于10,在每次循环的最后,要执行的操作是给计数器加1。 这些信息必须放在fo...
using System;namespace ConsoleApplication
{class stu{privatestring name;privateint age;public stu(){name = "";age = -1;}public stu(string n, int a){name = n;age = a;}publicvoid Print(){Console.Write(name + ":" + age);}}class Program{staticvoid Main(string[] args){stu a=new stu("xiaoming",10);a.Print();Console.WriteLine();stu b = new stu();b.Print();Console.Read();} }
} 原文:http://www.cnblog...
结构和类(一)结构-通常用于较小的数据类型,大多数情况下都是用类,可用于特定数学公式返回值这类Public struct 结构名{}结构是值的类型传递结构一般传值方式进行,不是用using进行,class则是用Using来进行引用结构声明构造函数时候必须带参数一个结构不能被另一个结构继承,因为都是具体的值,值不能继承值结构可以实现接口结构里面不能实例化其他东西实例化结构不需要用new来修饰,如public struct st{string a=””;}引用的时...
类是一种数据结构,它可以封装数据成员、函数成员和其它的类。类是创建对象的模板。C#中所有语句都必须位于类内。因此,类是C#语言的核心和基本构成模块。C#支持自定义类,使用C#编程就是编写自己的类来描述实际需要解决的问题。类就好比是医院的各个部门,如:内科、骨科、泌尿科、眼科等,在各科室中都有自己的工作方法,相当于在类中定义的变量和方法等。如果要救治车祸重伤的人,光是一个部门是不行的,可能要内科、骨科、脑科...