二、Interface
接口只能包含抽象成员,也就是说:接口不能有字段,不能有构造函数,不能提供方法实现。接口可以定义属性
(本质上是方法)协议。struct也可以实现接口。接口实现必须实现祖先接口的所有方法。
接口命名冲突,例如IDrawToForm和IDrawToPrinter都包含Draw()方法,这时候:
Class Octagon : IDrawToForm, IDrawToPrinter
{
public void Draw(){…}
}
如果有Octagon的对象oct,那么((IDrawToForm)oct).Draw()和(( IDrawToPrinter)oct).Draw()都是调用同一个实现,这时候可以使用显式接口实现语法:
class Octagon : IDrawToForm, IDrawToPrinter
{
//注意,没有访问修饰符,因为必须是私有的
void IDrawToForm.Draw(){…}
void IDrawToPrinter.Draw(){…}
}
A. IEnumerable和IEnumerato
r
任何支持GetEnumerator()方法的或者实现IEnumerable接口类型都可以通过foreach结构进行运算。
public interface IEnumerable
{
IEnumerator GetEnumerator();
}
public interface IEnumerator
{
bool MoveNext ();
object Current { get;}
void Reset ();
}
B. ICloneable
public interface ICloneable
{
object Clone();
}
System.Object的MemberwiseClone()得到一个浅拷贝。
C. IComparable,IComparer
public interface IComparable
{
int CompareTo(object o);
}
interface IComparer
{
int Compare(object o1, object o2);
}
Array.Sort(Alist),其中Alist里的成员必须实现IComparable接口, IComparer不是在要排序的类型中实现,而是在辅助类中实现的:
public class PetNameComparer : IComparer
{
int IComparer.Compare(object o1, object o2)
{
Car t1 = (Car)o1;
Car t2 = (Car)o2;
return String.Compare(t1.PetName, t2.PetName);
}
}
static void Main(string[] args)
{
...
Array.Sort(myAutoList, new PetNameComparer());
}
三、 构造函数,static
class Motorcycle
{
public Motorcycle(string name) : this(0, name)//调用另一个构造函数
{}
}
静态构造函数
class Motorcycle
{
public static string company
//不能有访问修饰符,不能有参数,只有一个,只执行一次(在访问静态成员之前)
// 执行在任何实例构造函数之前。
static Motorcycle ()
{
company = “BMW”;
}
}
如果一个类定义成static,不能使用new创建对象,且只能包含static成员。
分享到:
相关推荐
C# 课堂笔记 C# 课堂笔记 C# 课堂笔记 C# 课堂笔记 截取 屏幕,添加注释后保存到word文档中。
Learning hard C# 学习笔记
C# 获取笔记本电池信息 调用 Win32 Api C#源代码。
一个菜鸟的一些C#笔记,也许你用得上,也许用不上.但我希望总有人可以用得上.
C#自学笔记 C#自学笔记C#自学笔记C#自学笔记C#自学笔记C#自学笔记C#自学笔记
LearningHard C#学习笔记,学习C#的经典入门教材。 非常适合初学者,希望大家一起努力。
个人工作和学习中积累和总结的C#各种相关知识点 包含C#普通知识点 高级知识点 事件的本质 反射 委托 序列化 各种数据类型转换 缓存 注册表 希望可以对别人有用
深度学习C#笔记深度学习C#笔记深度学习C#笔记深度学习C#笔记深度学习C#笔记
C#笔记和练习,C#笔记和练习
自学笔记 c#自学笔记 c#自学笔记 c# 没更新
C#学习笔记C#学习笔记C#学习笔记C#学习笔记C#学习笔记C#学习笔记C#学习笔记C#学习笔记
本代码为大众化C#笔记本代码 代码为自作可能有些不做的地方 请多多担待
C#基础笔记-汇总 记录的笔记,简介 数据类型 超级长的例子 转
Visual C#学习笔记光盘 简介:本书由浅入深地讲解Visual C# 2005编程知识,全书内容分为6篇,共27章,第一篇介绍Visual Studio 2005开发环境和C#基础,其中包括Visual C# 2005简介,C#语言基础,面向对象编程...
学习C#时的一些读书笔记,比较零散,有图,仅供参考。
这是C#语言编写成的笔记本完整代码,具有新建,打开,保存,另存为,查很早,替换等的功能。
C#高级编程-学习笔记。内容详细且易懂,是一本非常优秀全面的书籍。
fff C# 的笔记 下那快速的查找,‘我们在项目的时候 常常忘记的难点重点,在笔记里里面我们可以找到
C#学习精品电子资料 C#笔记 C#学习精品电子资料 C#笔记 C#学习精品电子资料 C#笔记 C#学习精品电子资料 C#笔记