Bài đăng nổi bật

 


Các lớp C#

Trong C#, các lớp được sử dụng để tạo các kiểu tùy chỉnh. Lớp định nghĩa các loại thông tin và phương thức được bao gồm trong một loại tùy chỉnh.


using System;

namespace BasicClasses
{
    class Forest {
    public string name;
    public int trees;
    }
}

// Here we have the Forest class which has two pieces of data, called fields. They are the "name" and "trees" fields.

Khối mã lệnh C #

Trong C#, bất cứ khi nào một thể hiện của một lớp được tạo, phương thức khởi tạo của nó sẽ được gọi. Giống như các phương thức, một hàm tạo có thể được nạp chồng. Nó phải có cùng tên với lớp bao quanh. Điều này hữu ích khi bạn có thể muốn xác định một hàm tạo bổ sung có một số lượng đối số khác nhau.


// Takes two arguments
public Forest(int area, string country)
{
  this.Areaarea;
  this.Countrycountry;
}

// Takes one argument
public Forest(int area)
{
  this.Areaarea;
  this.Country"Unknown";
}


// Typically, a constructor is used to set initial values and run any code needed to “set up” an instance.

// A constructor looks like a method, but its return type and method name are reduced to the name of the enclosing type.

Hàm tạo không tham số C#

Trong C#, nếu không có hàm tạo nào được chỉ định trong một lớp, trình biên dịch sẽ tự động tạo một hàm tạo không tham số.


public class Freshman
{
  public string FirstName
  { get; set; }
}

public static void Main (string[] args)
{
  Freshman fnew Freshman();
  // name is null
  string namef.FirstName;
}

// In this example, no constructor is defined in Freshman, but a parameterless constructor is still available for use in Main().

Công cụ sửa đổi quyền truy cập C#

Trong C#, các thành viên của một lớp có thể được đánh dấu bằng các bổ ngữ truy cập , bao gồm publicvà privateMột publicthành viên có thể được truy cập bởi các lớp khác. Một privatethành viên chỉ có thể được truy cập bằng mã trong cùng một lớp.

Theo mặc định, các trường, thuộc tính và phương thức là riêng tư và các lớp là công khai.


public class Speech
{
  private string greeting"Greetings";

  private string FormalGreeting()
  {
    return $"{greeting} and salutations";
  }

  public string Scream()
  {
    return FormalGreeting().ToUpper();
  }

}

public static void Main (string[] args)
{
  Speech snew Speech();
  //string sfg = s.FormalGreeting(); // Error!
  //string sg = s.greeting; // Error!
  Console.WriteLine(s.Scream());
}

// In this example, greeting and FormalGreeting() are private. They cannot be called from the Main() method, which belongs to a different class. However the code within Scream() can access those members because Scream() is part of the same class.

Trường C#

Trong C#, một trường lưu trữ một phần dữ liệu trong một đối tượng. Nó hoạt động giống như một biến và có thể có một giá trị khác nhau cho mỗi trường hợp của một kiểu.

Một trường có thể có một số công cụ sửa đổi, bao gồm public, privatestaticvà readonlyNếu không có công cụ sửa đổi quyền truy cập nào được cung cấp, một trường là privatetheo mặc định.


public class Person
{
   private string firstName;
   private string lastName;
}

// In this example, firstName and lastName are private fields of the Person class.

// For effective encapsulation, a field is typically set to private, then accessed using a property. This ensures that values passed to an instance are validated (assuming the property implements some kind of validation for its field).

C# từ khóa this

Trong C#, từ khóa this đề cập đến phiên bản hiện tại của một lớp.


// We can use the this keyword to refer to the current class’s members hidden by similar names:
public NationalPark(int area, string state)
{
  this.areaarea;
  this.statestate;
}

// The code below requires duplicate code, which can lead to extra work and errors when changes are needed:
public NationalPark(int area, string state)
{
  areaarea;
  statestate;
}
public NationalPark(int area)
{
  areaarea;
  state"Unknown";
}

// Use this to have one constructor call another:
public NationalPark(int area) : this (state, "Unknown")
{ }

Thành viên  C#

Trong C#, một lớp chứa các thành viên , xác định loại dữ liệu được lưu trữ trong một lớp và các hành vi mà một lớp có thể thực hiện.


class Forest
{
  public string name;
  public string Name
  {
    getreturn name; }
    setnamevalue; }
  }
}

// A member of a class can be a field (like name), a property (like Name) or a method (like get()/set()). It can also be any of the following:
// Constants
// Constructors
// Events
// Finalizers
// Indexers
// Operators
// Nested Types

Kí hiệu dấu chấm C#

Trong C#, một thành viên của một lớp có thể được truy cập bằng ký hiệu dấu chấm.


string greeting"hello";

// Prints 5
Console.WriteLine(greeting.Length);

// Returns 8
Math.Min(8, 920);

Phiên bản lớp C #

Trong C#, một đối tượng là một thể hiện của một lớp. Một đối tượng có thể được tạo từ một lớp bằng cách sử dụng từ khóa new.


Burger cheeseburgernew Burger();
// If a class is a recipe, then an object is a single meal made from that recipe.

House tudornew House();
// If a class is a blueprint, then an object is a house made from that blueprint.

Thuộc tính C#

Trong C#, thuộc tính là một thành viên của đối tượng kiểm soát cách một trường có thể được truy cập và / hoặc sửa đổi. Thuộc tính xác định hai phương thức: một get()phương thức mô tả cách một trường có thể được truy cập và một set()phương thức mô tả cách một trường có thể được sửa đổi.

Một trường hợp sử dụng cho các thuộc tính là kiểm soát quyền truy cập vào một trường. Cách khác là xác thực các giá trị cho một trường.


public class Freshman
{
  private string firstName;

  public string FirstName
  {
    getreturn firstName; }
    setfirstNamevalue; }
  }
}

public static void Main (string[] args) {
  Freshman fnew Freshman();
  f.FirstName"Louie";
  
  // Prints "Louie"
  Console.WriteLine(f.FirstName);
}

// In this example, FirstName is a property

Thuộc tính được triển khai tự động trong C#

Trong C#, một thuộc tính được triển khai tự động đọc và ghi vào một trường riêng, giống như các thuộc tính khác, nhưng nó không yêu cầu định nghĩa rõ ràng cho các phương thức của trình truy cập cũng như trường. Nó được sử dụng với { get; set; }cú pháp. Điều này giúp mã của bạn trở nên ngắn gọn hơn.


public class HotSauce
{
  public string Title
  { get; set; }

  public string Origin
  { get; set; }
}

// In this example, Title and Origin are auto-implemented properties. Notice that a definition for each field (like private string title) is no longer necessary. A hidden, private field is created for each property during runtime.

C# Static Constructor

Trong C#, một phương thức khởi tạo tĩnh được chạy một lần cho mỗi kiểu, không phải cho mỗi trường hợp. Nó phải là không tham số. Nó được gọi trước khi kiểu được khởi tạo hoặc một thành viên tĩnh được truy cập.


class Forest
{
  static Forest()
  {
    Console.WriteLine("Type Initialized");
  }
}
// In this class, either of the following two lines would trigger the static constructor (but it would not be triggered twice if these two lines followed each other in succession):
Forest f  = new Forest();
Forest.Define();

Lớp tĩnh C# - C# Static Class

Trong C#, một lớp static không thể được khởi tạo. Các thành viên của nó được truy cập bằng tên lớp.

Điều này hữu ích khi bạn muốn một lớp cung cấp một bộ công cụ, nhưng không cần duy trì bất kỳ dữ liệu nội bộ nào.

Mathlà một lớp tĩnh thường được sử dụng.


//Two examples of static classes calling static methods:

Math.Min(23, 97);
Console.WriteLine("Let's Go!");


Post a Comment

Mới hơn Cũ hơn