Hướng dẫn c++ constructor microsoft - phần mềm xây dựng c ++

Chuyển đến nội dung chính

Trình duyệt này không còn được hỗ trợ nữa.

Hãy nâng cấp lên Microsoft Edge để tận dụng các tính năng mới nhất, bản cập nhật bảo mật và hỗ trợ kỹ thuật.

Constructors (C# programming guide)

  • Bài viết
  • 02/09/2022
  • 2 phút để đọc

Trong bài viết này

Whenever a class or struct is created, its constructor is called. A class or struct may have multiple constructors that take different arguments. Constructors enable the programmer to set default values, limit instantiation, and write code that is flexible and easy to read. For more information and examples, see Instance constructors and Using constructors.

Cú pháp Constructor

Một hàm tạo là một phương thức có tên giống như tên của loại. Chữ ký phương thức của nó chỉ bao gồm một công cụ sửa đổi truy cập tùy chọn, tên phương thức và danh sách tham số của nó; Nó không bao gồm một loại trả lại. Ví dụ sau đây cho thấy hàm tạo cho một lớp có tên Person.

public class Person
{
   private string last;
   private string first;

   public Person(string lastName, string firstName)
   {
      last = lastName;
      first = firstName;
   }

   // Remaining implementation of Person class.
}

Nếu một hàm tạo có thể được thực hiện như một câu lệnh duy nhất, bạn có thể sử dụng định nghĩa cơ thể biểu thức. Ví dụ sau đây xác định một lớp Location có hàm tạo có một tham số chuỗi có tên. Định nghĩa cơ thể biểu thức gán đối số cho trường locationName.

public class Location
{
   private string locationName;

   public Location(string name) => Name = name;

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

Các nhà xây dựng tĩnh

Các ví dụ trước có tất cả các hàm tạo thể hiện được hiển thị, tạo ra một đối tượng mới. Một lớp hoặc cấu trúc cũng có thể có một hàm tạo tĩnh, khởi tạo các thành viên tĩnh của loại. Các hàm tạo tĩnh là không tham số. Nếu bạn không cung cấp một hàm tạo tĩnh để khởi tạo các trường tĩnh, trình biên dịch C# sẽ khởi tạo các trường tĩnh thành giá trị mặc định của chúng như được liệt kê trong các giá trị mặc định của bài viết C# Type.

Ví dụ sau đây sử dụng một hàm tạo tĩnh để khởi tạo trường tĩnh.

public class Adult : Person
{
   private static int minimumAge;

   public Adult(string lastName, string firstName) : base(lastName, firstName)
   { }

   static Adult()
   {
      minimumAge = 18;
   }

   // Remaining implementation of Adult class.
}

Bạn cũng có thể xác định một hàm tạo tĩnh với định nghĩa cơ thể biểu thức, như ví dụ sau đây cho thấy.

public class Child : Person
{
   private static int maximumAge;

   public Child(string lastName, string firstName) : base(lastName, firstName)
   { }

   static Child() => maximumAge = 18;

   // Remaining implementation of Child class.
}

Để biết thêm thông tin và ví dụ, xem các hàm tạo tĩnh.

Trong phần này

Sử dụng các hàm tạo

Người xây dựng trường hợp

Nhà xây dựng tư nhân

Các nhà xây dựng tĩnh

Cách viết một hàm tạo bản sao

Xem thêm

  • Hướng dẫn lập trình C#
  • Hệ thống loại C#
  • Finalizer
  • static
  • Tại sao các bộ khởi tạo chạy theo thứ tự ngược lại như các hàm tạo? Phần một

Phản HồI

Gửi và xem ý kiến ​​ph

Chuyển đến nội phân

Trình Duyệt nào Không CNn Đan Hỗ trợ nữa.

Hãy nâng cấp lênn microsoft ed

Trình xây dựng thể hiện (Hướng dẫn lập trình C#)

  • Bài viết
  • 05/21/2022
  • 2 Phú

Trong bài viết nào

Bạn khai báo một hàm tạo thể hiện để chỉ định mã được thực thi khi bạn tạo một thể hiện mới của một loại với biểu thức

public class Location
{
   private string locationName;

   public Location(string name) => Name = name;

   public string Name
   {
      get => locationName;
      set => locationName = value;
   }
}
0. Để khởi tạo một lớp tĩnh hoặc các biến tĩnh trong một lớp không tĩnh, bạn có thể xác định một hàm tạo tĩnh.

Như ví dụ sau đây cho thấy, bạn có thể khai báo một số bộ xây dựng thể hiện trong một loại:

class Coords
{
    public Coords()
        : this(0, 0)
    {  }

    public Coords(int x, int y)
    {
        X = x;
        Y = y;
    }

    public int X { get; set; }
    public int Y { get; set; }

    public override string ToString() => $"({X},{Y})";
}

class Example
{
    static void Main()
    {
        var p1 = new Coords();
        Console.WriteLine($"Coords #1 at {p1}");
        // Output: Coords #1 at (0,0)

        var p2 = new Coords(5, 3);
        Console.WriteLine($"Coords #2 at {p2}");
        // Output: Coords #2 at (5,3)
    }
}

Trong ví dụ trước, hàm tạo thứ nhất, không tham số, gọi hàm tạo thứ hai với cả hai đối số bằng

public class Location
{
   private string locationName;

   public Location(string name) => Name = name;

   public string Name
   {
      get => locationName;
      set => locationName = value;
   }
}
1. Để làm điều đó, sử dụng từ khóa
public class Location
{
   private string locationName;

   public Location(string name) => Name = name;

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

Khi bạn khai báo một hàm tạo thể hiện trong một lớp dẫn xuất, bạn có thể gọi một hàm tạo của một lớp cơ sở. Để làm điều đó, hãy sử dụng từ khóa

public class Location
{
   private string locationName;

   public Location(string name) => Name = name;

   public string Name
   {
      get => locationName;
      set => locationName = value;
   }
}
3, như ví dụ sau đây cho thấy:

abstract class Shape
{
    public const double pi = Math.PI;
    protected double x, y;

    public Shape(double x, double y)
    {
        this.x = x;
        this.y = y;
    }

    public abstract double Area();
}

class Circle : Shape
{
    public Circle(double radius)
        : base(radius, 0)
    {  }

    public override double Area() => pi * x * x;
}

class Cylinder : Circle
{
    public Cylinder(double radius, double height)
        : base(radius)
    {
        y = height;
    }

    public override double Area() => (2 * base.Area()) + (2 * pi * x * y);
}

class Example
{
    static void Main()
    {
        double radius = 2.5;
        double height = 3.0;

        var ring = new Circle(radius);
        Console.WriteLine($"Area of the circle = {ring.Area():F2}");
        // Output: Area of the circle = 19.63
        
        var tube = new Cylinder(radius, height);
        Console.WriteLine($"Area of the cylinder = {tube.Area():F2}");
        // Output: Area of the cylinder = 86.39
    }
}

Các hàm tạo không tham số

Nếu một lớp không có các hàm tạo thể hiện rõ, C# cung cấp một hàm tạo không tham số mà bạn có thể sử dụng để khởi tạo một thể hiện của lớp đó, như ví dụ sau đây cho thấy:

public class Person
{
    public int age;
    public string name = "unknown";
}

class Example
{
    static void Main()
    {
        var person = new Person();
        Console.WriteLine($"Name: {person.name}, Age: {person.age}");
        // Output:  Name: unknown, Age: 0
    }
}

Trình xây dựng đó khởi tạo các trường thể hiện và thuộc tính theo các bộ khởi tạo tương ứng. Nếu trường hoặc thuộc tính không có trình khởi tạo, giá trị của nó được đặt thành giá trị mặc định của loại trường hoặc thuộc tính. Nếu bạn khai báo ít nhất một hàm tạo phiên bản trong một lớp, C# không cung cấp một hàm tạo không tham số.

Một loại cấu trúc luôn cung cấp một hàm tạo không tham số như sau:

  • Trong C# 9.0 trở lên, đó là một hàm tạo không tham số ngầm, tạo ra giá trị mặc định của một loại.
  • Trong C# 10 trở lên, đó là một hàm tạo không tham số ngầm, tạo ra giá trị mặc định của một loại hoặc một hàm tạo không tham số được khai báo rõ ràng. Để biết thêm thông tin, hãy xem phần khởi tạo cấu trúc và giá trị mặc định của bài viết loại cấu trúc.

Xem thêm

  • Hướng dẫn lập trình C#
  • Các lớp, cấu trúc và hồ sơ
  • Người xây dựng
  • Finalizer
  • cơ sở
  • this

Phản HồI

Gửi và xem ý kiến ​​ph