码迷,mamicode.com
首页 > Windows程序 > 详细

C#基础—构造函数

时间:2018-04-04 15:08:17      阅读:316      评论:0      收藏:0      [点我收藏+]

标签:ase   ams   tle   rds   参数   结构   gpo   构造函数   class   

转载自微软相关官方文档;

https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/classes-and-structs/using-constructors

 

每当创建结构时,将会调用其构造函数。 类或结构可能具有采用不同参数的多个构造函数。 使用构造函数,程序员能够设置默认值、限制实例化,并编写灵活易读的代码。

构造函数与该类或结构具有相同名称,并且通常初始化新对象的数据成员。 其方法签名仅包含方法名称和其参数列表;它不包含返回类型。

 

public class Person
{
   private string last;
   private string first;
   
   public Person(string lastName, string firstName)
   {
      last = lastName;
      first = firstName;
   }
   
   // Remaining implementation of Person class.
}

or

public class Location
{
   private string locationName;
   
   public Location(string name) => locationName = name;

   public string Name
   {
      get => locationName;
      set => locationName = value;
   } 
}

 

 

使用构造函数

通过使用简单构造函数定义了一个名为 Taxi 的类。 然后使用 new 运算符对该类进行实例化。 在为新对象分配内存之后,new 运算符立即调用 Taxi 构造函数。

public class Taxi
{
    public bool isInitialized;
    public Taxi()
    {
        isInitialized = true;
    }
}

class TestTaxi
{
    static void Main()
    {
        Taxi t = new Taxi();
        Console.WriteLine(t.isInitialized);
    }
}

 

s

1.通过将构造函数设置为私有构造函数,可以阻止类被实例化——class NLog { private NLog() { } }

   构造函数可以将标记为公共私有保护内部受保护内部私有受保护这些访问修饰符定义类的用户构造该类的方式。

2.结构类型的构造函数与类的构造函数类似,但是 structs 不能包含显式默认构造函数,因为编译器将自动提供一个显式默认构造函数。

3.类和 structs 都可以定义带参数的构造函数。 必须通过 new 语句或 base 语句调用带参数的构造函数。 类和 structs 还可以定义多个构造函数,并且二者均不需要定义默认构造函数。

4.构造函数可以使用 this 关键字调用同一对象中的另一构造函数。 base 一样,this 可带参数使用也可不带参数使用,构造函数中的任何参数都可用作 this 的参数,或者用作表达式的一部分。

    在执行构造函数块之前调用基类的构造函数。 base 关键字可带参数使用,也可不带参数使用。 构造函数的任何参数都可用作 base 的参数,或用作表达式的一部分。

e

 

 

默认构造函数

不带任何参数的构造函数称为“默认构造函数”。 每当使用 new 运算符实例化对象且不为 new 提供任何参数时,会调用默认构造函数。

如果没有为类提供构造函数,默认情况下,C# 将创建一个会实例化对象并将成员变量设置为默认值的构造函数。 如果没有为结构提供构造函数,C# 将依赖于隐式默认构造函数,自动将值类型的每个字段初始化为其默认值。

 

静态构造函数

类或结构也可以具有静态构造函数,该静态构造函数初始化类型的静态成员。 静态构造函数是无参数构造函数。 如果未提供静态构造函数来初始化静态字段,C# 编译器将提供默认静态构造函数

 

C#基础—构造函数

标签:ase   ams   tle   rds   参数   结构   gpo   构造函数   class   

原文地址:https://www.cnblogs.com/bananana/p/8716688.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!