Trong C# khi tôi muốn gọi một phương thức tĩnh của một lớp từ một phương thức tĩnh khác của lớp đó, có tiền tố chung mà tôi có thể sử dụng như là self::
của PHP thay vì tên lớp không?C# tương đương với "self ::" của PHP là gì?
Vì vậy, trong ví dụ dưới đây, thay vì nói Customer.DatabaseConnectionExists()
, làm thế nào tôi có thể nói điều gì đó như Self.DatabaseConnectionExists()
nên ví dụ sau này nếu tôi thay đổi tên của lớp tôi không phải thay đổi tất cả các tiền tố?
class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public static Customer GetCurrentCustomer()
{
if (Customer.DatabaseConnectionExists())
{
return new Customer { FirstName = "Jim", LastName = "Smith" };
}
else
{
throw new Exception("Database connection does not exist.");
}
}
public static bool DatabaseConnectionExists()
{
return true;
}
}
Tôi không biết bất cứ điều gì, nhưng tại sao bạn không chỉ cần đi đến "Refactor" thông qua trình đơn ngữ cảnh - nó sẽ tiết kiệm cho bạn khỏi tai ương chỉnh sửa thủ công – annakata
nhưng ít nhất là từ kinh nghiệm của tôi đọc mã PHP, nếu bạn thấy "self ::" bạn biết bạn đang tham chiếu lớp đó cho dù nó được gọi là gì, nếu bạn thấy "Customer ::" bạn phải nhìn xung quanh để xem bạn có thực sự thuộc lớp Customer hay không. Nó chỉ làm cho mã rõ ràng hơn một chút, một cái gì đó tôi đã từng nhìn thấy. –