修饰符,关键字

本文介绍了C#中的params修饰符,用于向方法传递数量不定的参数,以及base关键字,用于从派生类中访问基类成员,包括调用基类方法和指定基类构造函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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:

  1. public class Person
  2. {
  3.     protected string ssn = "444-55-6666";
  4.     protected string name = "John L. Malgraine";

  5.     public virtual void GetInfo()
  6.     {
  7.         Console.WriteLine("Name: {0}", name);
  8.         Console.WriteLine("SSN: {0}", ssn);
  9.     }
  10. }
  11. class Employee : Person
  12. {
  13.     public string id = "ABC567EFG";
  14.     public override void GetInfo()
  15.     {
  16.         // Calling the base class GetInfo method:
  17.         base.GetInfo();
  18.         Console.WriteLine("Employee ID: {0}", id);
  19.     }
  20. }

  21. class TestClass
  22. {
  23.     static void Main()
  24.     {
  25.         Employee E = new Employee();
  26.         E.GetInfo();
  27.     }
  28. }
  29. /*
  30. Output
  31. Name: John L. Malgraine
  32. SSN: 444-55-6666
  33. Employee ID: ABC567EFG
  34. */



例子2:

  1. public class BaseClass
  2. {
  3.     int num;

  4.     public BaseClass()
  5.     {
  6.         Console.WriteLine("in BaseClass()");
  7.     }

  8.     public BaseClass(int i)
  9.     {
  10.         num = i;
  11.         Console.WriteLine("in BaseClass(int i)");
  12.     }

  13.     public int GetNum()
  14.     {
  15.         return num;
  16.     }
  17. }

  18. public class DerivedClass : BaseClass
  19. {
  20.     // This constructor will call BaseClass.BaseClass()
  21.     public DerivedClass() : base()
  22.     {
  23.     }

  24.     // This constructor will call BaseClass.BaseClass(int i)
  25.     public DerivedClass(int i) : base(i)
  26.     {
  27.     }

  28.     static void Main()
  29.     {
  30.         DerivedClass md = new DerivedClass();
  31.         DerivedClass md1 = new DerivedClass(1);
  32.     }
  33. }
  34. /*
  35. Output:
  36. in BaseClass()
  37. in BaseClass(int i)
  38. */
AS 运算符
as 运算符只执行引用转换和装箱转换。as 运算符无法执行其他转换
AS转换时不会触发异常,而是返回NULL




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值