Params修饰符
注:参数的最后一个修饰符用于向方法传递数量不定的参数,关键字params必须与一个单独的一维数组,并且应该是参数列表的最后一项,并且每个方法声明中,只能有一个params修饰符。
如下所示:
static void main()
{
PrintValue(1,2,3,4,5,6);
}
public static void PrintValue(params int [] valueList)
{
foreach(int val in valuelist)
{
Console.Write(val);
}
}
base 关键字
base 关键字用于从派生类中访问基类的成员:
-
调用基类上已被其他方法重写的方法。
-
指定创建派生类实例时应调用的基类构造函数。
基类访问只能在构造函数、实例方法或实例属性访问器中进行。
先调用基类的构造函数再调用派生类
静态方法中不能使用base关键字
例子1:
- public class Person
- {
- protected string ssn = "444-55-6666";
- protected string name = "John L. Malgraine";
- public virtual void GetInfo()
- {
- Console.WriteLine("Name: {0}", name);
- Console.WriteLine("SSN: {0}", ssn);
- }
- }
- class Employee : Person
- {
- public string id = "ABC567EFG";
- public override void GetInfo()
- {
- // Calling the base class GetInfo method:
- base.GetInfo();
- Console.WriteLine("Employee ID: {0}", id);
- }
- }
- class TestClass
- {
- static void Main()
- {
- Employee E = new Employee();
- E.GetInfo();
- }
- }
- /*
- Output
- Name: John L. Malgraine
- SSN: 444-55-6666
- Employee ID: ABC567EFG
- */
例子2:
- public class BaseClass
- {
- int num;
- public BaseClass()
- {
- Console.WriteLine("in BaseClass()");
- }
- public BaseClass(int i)
- {
- num = i;
- Console.WriteLine("in BaseClass(int i)");
- }
- public int GetNum()
- {
- return num;
- }
- }
- public class DerivedClass : BaseClass
- {
- // This constructor will call BaseClass.BaseClass()
- public DerivedClass() : base()
- {
- }
- // This constructor will call BaseClass.BaseClass(int i)
- public DerivedClass(int i) : base(i)
- {
- }
- static void Main()
- {
- DerivedClass md = new DerivedClass();
- DerivedClass md1 = new DerivedClass(1);
- }
- }
- /*
- Output:
- in BaseClass()
- in BaseClass(int i)
- */
as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换
AS转换时不会触发异常,而是返回NULL