Tôi đã tự hỏi nếu điều sau đây là có thể. Tạo một lớp chấp nhận một kiểu vô danh (string, int, decimal, customObject, vv), sau đó có các phương thức quá tải làm các hoạt động khác nhau dựa trên Type. Ví dụPhương pháp quá tải với các loại C#
class TestClass<T>
{
public void GetName<string>()
{
//do work knowing that the type is a string
}
public string GetName<int>()
{
//do work knowing that the type is an int
}
public string GetName<int>(int addNumber)
{
//do work knowing that the type is an int (overloaded)
}
public string GetName<DateTime>()
{
//do work knowing that the type is a DateTime
}
public string GetName<customObject>()
{
//do work knowing that the type is a customObject type
}
}
Bây giờ tôi có thể gọi phương thức GetName và vì tôi đã chuyển vào loại khi tôi khởi tạo đối tượng, phương pháp đúng được tìm thấy và thực hiện.
TestClass foo = new TestClass<int>();
//executes the second method because that's the only one with a "int" type
foo.GetName();
Điều này có thể hay tôi chỉ mơ?
+1 Generics! = Templates – user7116