









1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
namespace CSharpFoundationStudy
6
{
7
/*
8
* abstract virtual new override 关键字
9
* abstract 修饰符可以用于类、方法、属性、事件和索引器,表示其为抽象成员
10
* abstract 不可以和 static 、virtual 一起使用
11
* 声明为 abstract 成员可以不包括实现代码,但只要类中还有未实现的抽象成员(即抽象类),那么它的对象就不能被实例化,通常用于强制继承类必须实现某一成员
12
*
13
* 如果父类方法没有加virtual关键字,即不是一个虚方法,则在子类中只能隐藏基类方法,而不能覆盖。
14
* 如果父类方法加了virtual关键字,即它是一个虚方法,在子类中一样可以隐藏。
15
* 如果子类实现了父类相同的方法(相同的方法名称及签名),而没有new,在编译时会报警,但编译仍然能够通过!
16
* 调用父类方法:base.方法名()
17
* abstract类是一个抽象类,不能被实例化
18
*/
19
20
抽象基类
49
50
继承类
118
119
public class Test
120
{
121
public static void OnFunction(object sender, EventArgs e)
122
{
123
/*
124
* From: http://www.cnblogs.com/anytao/ [你必须知道的.NET] 第一回:恩怨情仇:is和as
125
* as VS is 类型安全
126
* 类型转换包括显示转换和隐式转换,在.NET中类型转换的基本规则如下:
127
* 任何类型都可以安全的转换为其基类类型,可以由隐式转换来完成;
128
* 任何类型转换为其派生类型时,必须进行显示转换,转换的规则是:(类型名)对象名;
129
* 使用GetType可以取得任何对象的精确类型;
130
* 基本类型可以使用Covert类实现类型转换;
131
* 除了string以外的其他类型都有Parse方法,用于将字符串类型转换为对应的基本类型;
132
* 值类型和引用类型的转换机制称为装箱(boxing)和拆箱(unboxing)。
133
*
134
* is/as操作符,是C#中用于类型转换的,提供了对类型兼容性的判断,从而使得类型转换控制在安全的范畴,提供了灵活的类型转换控制
135
* is的规则如下:
136
* 检查对象类型的兼容性,并返回结果,true或者false;
137
* 不会抛出异常;
138
* 如果对象为null,则返回值永远为false。
139
*
140
* as的规则如下:
141
* 检查对象类型的兼容性,并返回结果,如果不兼容就返回null;
142
* 不会抛出异常;
143
* 如果结果判断为空,则强制执行类型转换将抛出NullReferenceException异常。
144
*/
145
DerivedInstance instance = sender as DerivedInstance;
146
if (instance != null)
147
{
148
for (int i = 0; i < instance.Attribute.Length; i++)
149
{
150
Console.WriteLine(instance[i]);
151
}
152
}
153
}
154
public static void Main()
155
{
156
DerivedInstance instance = new DerivedInstance();
157
instance.Event += new EventHandler(OnFunction);
158
instance.GFunction("simply-zhao 2008/1/20");
159
instance.VFunction("simply-zhao 2008/1/20");
160
instance.AFunction("simply-zhao 2008/1/20");
161
Console.ReadLine();
162
}
163
}
164
}
165
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。