c#方法重载,构造函数,析构函数,readonly与const区别

1、方法重载:在同一作用域中,有多个方法名相同的方法,参数类型不同或者参数个数不同。
public static void print ()
{
Console.WriteLine ("1");
}
//调用:print();
public static void print(int a)
{
Console.WriteLine (a);
}
//调用:print(5);
public static void print(double b)
{
Console.WriteLine (b);
}
//调用:print(5.29);
public static void print(int c,int d)
{
Console.WriteLine (c+","+d);
}
//调用:print(2,9);
2、构造函数:创建一个类的对象时,编译器会自动调用构造函数来初始化对象。
特点:(1)、构造函数名与类名相同
(2)、一个类中可以包含多个构造函数--构造函数重载
(3)、如果类中没有定义构造函数,编译器会自动提供一个空的默认构造
(4)、构造函数无返回值
(5)、构造函数一般定义为公有public;


静态构造函数:初始化静态数据成员
(1)、不能有访问修饰符(public,private,protected,internal)和参数
(2)、不能带任何参数
(3)、只会被执行一次
(4)、不能访问实例成员
(5)、无法直接进行调用
eg、
class Student
{
private string name;
private int age;
private static string teacherName;
//构造方法:构造对象时,初始化对象(的字段)
public Student(string n,int a)
{
name = n;
age = a;
}
//静态构造函数会被自动调用而且只调用了一次
static Student ()
{
teacherName="Mr_lee";


}
public void print()
{
Console.WriteLine ("姓名:{0},年龄:{1},老师:{2}", name, age, teacherName);
}
}
3、析构函数:在对象被销毁之前释放对象所使用的托管和非托管资源。在C#中,程序会自动运行析构函数。
特点:(1)、不能在结构体中定义析构函数,只能在类中定义
(2)、一个类只能有一个析构函数
(3)、无法继承或者重载析构函数
(4)、无法显式的调用析构函数,由垃圾回收器自动调用
(5)、析构函数即,没有访问修饰符也没有参数
eg、
class Person
{
public Person()
{
Console.WriteLine ("构造函数被调用");
}
~Person1()
{
Console.WriteLine ("析构函数被调用");
}
}
class MainClass
{
public static void Main (string[] args)
{
Person p1 = new Person ();
p1.print ();
}
}
运行结果:构造函数被调用
析构函数被调用
程序会自动调用析构函数。
4、readonly与const
(1)、readonly可以在声明时初始化或者构造函数中初始化;const只能在声明时初始化;
(2)、readonly只能修饰类的成员;const既可修饰类的成员也可修饰普通变量;
(3)、一般在修饰类的成员时用readonly;修饰普通变量用const;
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值