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
using System;2
using System.Collections.Generic;3
using System.Text;4

5
namespace CSharpFoundationStudy6
{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 Test120
{121
public static void OnFunction(object sender, EventArgs e)122
{123
/*124
* From: http://www.cnblogs.com/anytao/ [你必须知道的.NET] 第一回:恩怨情仇:is和as125
* 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

A Za A Za, Fighting!


浙公网安备 33010602011771号