Cách gọi một tác vụ không tĩnh trong phương thức statick mà không cần sử dụng lớp

lập trình


Chào các cậu,

tôi tự hỏi liệu có giải pháp nào để gọi một tác vụ không tĩnh trong phương thức tĩnh không, ví dụ đây là tác vụ không tĩnh của tôi

C#
public async Task login(string user, string password)
        {

        }

và đây là phương pháp tĩnh của tôi

C#
public static void checker(string email, string password)
       {
           while (true)
           {
               login(email, password);
           }
       }

nhưng nó không thể được gọi và tôi không muốn sử dụng các lớp cho chúng.

Những gì tôi đã thử:

………………………………………………………..

Giải pháp 1

Bạn có thể làm điều đó bằng cách sử dụng một số đối tượng toàn cục hoặc một số đối tượng cục bộ trong phương thức tĩnh.

Nhưng khi tôi đọc C# cũng có thể bắt đầu một luồng trên một phương thức cá thể. Đọc Tài liệu của Microsoft.

Tái bút: bằng cách trả lời câu hỏi của bạn, tôi đã học được một chút 🙂

Giải pháp 2

Không. Không trực tiếp.
Một thành viên không tĩnh luôn cần một phiên bản đối tượng để làm việc vì nó được ngụ ý rằng nó có thể chạm vào dữ liệu phiên bản. và điều đó sẽ không thể thực hiện được nếu không có tham chiếu đối tượng.

Nó hoạt động trong ví dụ do KarstenK cung cấp vì phương thức thành viên được gói trong một đại biểu.
Đó là những gì bạn có thể làm: vượt qua các đại biểu.
Nhưng bạn vẫn phải chuyển chúng bằng cách nào đó, bạn không thể chỉ ‘gọi’ một phương thức cá thể ngẫu nhiên mà không tạo đại biểu. Trừ khi bạn sử dụng một đối tượng toàn cầu.

Nhưng thành thật mà nói, trong những trường hợp như thế này, vấn đề của bạn là dấu hiệu cho thấy bạn đang cố gắng khắc phục sai vấn đề. Đó có thể là dấu hiệu cho thấy phương thức ‘đăng nhập’ của bạn không phải là phương thức phiên bản. Hoặc nếu thực sự cần thiết, bạn không nên cố tránh sử dụng instance.

コメント

タイトルとURLをコピーしました