C#2.0类和对象学习系列之构造函数
来源:互联网 发布:appcleaner mac 破解 编辑:程序博客网 时间:2024/06/05 04:50
在对象创建的时刻,有一个方法自动执行。我们称这种方法为构造函数。语法上,C#构造函数与其所在的类名相同,而且不返回任何值(甚至void都不用写)。一个类可以:
1.没有构造函数。这种情况下C,#编译器会自动提供一个默认的构造函数,即没有任何参数的构造函数,默认构造函数都是公有的
2.有一个构造函数。这种情况下,总是调用这一个构造函数,编译器将不会提供默认构造函数。
3.有多个构造函数。多个构造函数以不同的签名式区分,使用时具体的选择采用方法重载的规则 。编译器将不会提供任何的默认构造函数。
总结以上各点可知,只要定义了至少一个构造函数,编译器就不会提供默认构造函数。
在结构中情况有所不同。因为不允许定义没有参数的构造函数。所以编译器始终会提供一个默认的构造函数。
当构造函数返回时,要求所有非静态的值类型字段都已经初始化。
构造函数野兽可见性级别的控制,使用方式与其他方法一样。
结构的相关例子
struct Artical
{
public int Price;
public Artical(int price) //构造函数1
{
this.Price = price;
}
public Artical(double price) //构造函数2
{
this.Price = price;
}
}
class Program
{
static void Main(string[] args)
{
Artical a; //调用结构默认构造函数
Artical b = new Artical(6); //调用构造函数1
Artical c = new Artical(6.4); //调用构造函数2
}
}
{
public int Price;
public Artical(int price) //构造函数1
{
this.Price = price;
}
public Artical(double price) //构造函数2
{
this.Price = price;
}
}
class Program
{
static void Main(string[] args)
{
Artical a; //调用结构默认构造函数
Artical b = new Artical(6); //调用构造函数1
Artical c = new Artical(6.4); //调用构造函数2
}
}
类的相关例子
class Artical
{
public int Price;
public Artical(int price) //构造函数1
{
this.Price = price;
}
public Artical(double price) //构造函数2
{
this.Price = price;
}
public Artical() //构造函数3
{
this.Price = price;
}
}
class Program
{
static void Main(string[] args)
{
Artical a = new Artical(); //调用构造函数3
Artical b = new Artical(6); //调用构造函数1
Artical c = new Artical(6.4); //调用构造函数2
}
}
{
public int Price;
public Artical(int price) //构造函数1
{
this.Price = price;
}
public Artical(double price) //构造函数2
{
this.Price = price;
}
public Artical() //构造函数3
{
this.Price = price;
}
}
class Program
{
static void Main(string[] args)
{
Artical a = new Artical(); //调用构造函数3
Artical b = new Artical(6); //调用构造函数1
Artical c = new Artical(6.4); //调用构造函数2
}
}
创建引用类型时必须使用new操作符。创建值类型时,如果想调用构造函数,也必须使用new操作符,如果不使用,实例能够创建,但却可能没有调用任何构造函数。
- C#2.0类和对象学习系列之构造函数
- C#2.0类和对象学习系列之参数初始化
- C#2.0类和对象学习系列之ref关键字
- c#2.0类和对象学习系列之输出参数
- C#2.0类和对象学习系列之params关键字
- C#2.0类和对象学习系列之属性
- C#2.0类和对象学习系列之索引器
- C#2.0类和对象学习系列之this关键字
- C#2.0类和对象学习系列之this关键字
- C#2.0类和对象学习系列之this关键字
- C#温故而知新学习系列之面向对象编程—7-构造函数
- C++编程入门系列之十四(类与对象:构造函数和析构函数)
- C++编程入门系列之十四(类与对象:构造函数和析构函数)
- C#学习之构造函数
- C#2.0类和对象学习系列之get,set访问器
- C#面向对象之构造函数
- C#之构造函数的学习
- C++学习总结——类和对象、构造函数和拷贝构造函数
- 几种连接
- 完美主义(转贴)
- [转]通过分析SQL语句的执行计划优化SQL (七)[2]
- [转]通过分析SQL语句的执行计划优化SQL (七)[1]
- 出现错误信息:Configuration Error
- C#2.0类和对象学习系列之构造函数
- 二分法插入排序
- [转]通过分析SQL语句的执行计划优化SQL (七)[3]
- RGB/YUV Pixel Conversion
- 07年10大CEO言论
- [转]通过分析SQL语句的执行计划优化SQL (七)[4]
- [转]通过分析SQL语句的执行计划优化SQL (七)[5]
- WaitForMultipleObjects
- 关于“This file has been modified outside of the source editor. Do you want to reload it?”错误的处理