Có, Foo.class
bằng Java tương đương với typeof(Foo)
trong C#. Xem section 15.8.2 of the JLS để biết thêm thông tin về các chữ cái lớp.
Đó là không giống như gọi GetType()
trên một tài liệu tham khảo, mà được các thời gian thực hiện kiểu của một đối tượng. Tương đương với Java là someReference.getClass()
.
Một lý do bạn có thể thấy nó thường xuyên hơn trong mã Java so với C# liên quan đến Generics. Đó không phải là hoàn toàn bình thường khi có cái gì đó như:
public class Generic<T>
{
private final Class<T> clazz;
public Generic(Class<T> clazz)
{
this.clazz = clazz;
}
}
này cho phép thực hiện thời gian truy cập vào các lớp học để suy tư vv Điều này chỉ cần thiết trong Java do loại chô bôi, trong đó một đối tượng của một kiểu generic có thể 't bình thường xác định các đối số kiểu của nó tại thời gian thực hiện.
Nguồn
2011-10-17 06:06:51
Một số thông tin liên quan: 'System.Type' là loại chung trong .Net và không cụ thể cho C#. Tôi không biết nếu như vậy là hoặc không đúng cho loại 'Class' trong JVM (trái ngược với chính ngôn ngữ Java). –
Thật khó tìm thấy mẩu thông tin này đến từ Java. Tôi tìm kiếm "C# class object", "C# reference to class" và nhiều thuật ngữ khác không biết điều này được gọi là 'Type' trong C# - những điều duy nhất bạn sẽ nhận được là hướng dẫn và giới thiệu cho OOP. Nhưng cảm ơn bạn cho câu hỏi đó :-) – Mitja