我有一个 C# 类,它的所有成员都是object
.
有哪些风险和警告?会占用更多资源吗?
C#中的对象和对象有什么区别?
object
和之间没有区别Object
。object
只是 C# 的一个内置关键字,它代表Object
(或者更确切地说System.Object
),就像int
代表System.Int32
.
为什么你的所有属性都是object
类型?它不会占用更多资源(类型检查和类型转换除外),但肯定存在风险,因为您在编译时不知道正在使用哪些类型。您需要一直检查类型并进行强制转换。如果您要使用更具体的类型,编译器会为您检查。您确定没有更适合您的属性的类型,例如int
或string
其他类型吗?
object 类型的成员只是对其他内容的引用。这意味着您必须将一堆引用转换为它们的实际类型才能将它们用于任何事情,这也意味着您必须跟踪它们的实际类型是什么。如果可能,您应该将类型更改为您要存储的实际类型。
对象引用本身不会比任何其他引用类型使用更多或更少的资源,但是由于每次使用它都必须强制转换它,因此处理数据需要更多代码。
C# 中的关键字是框架object
中类的别名。System.Object
唯一的问题是您必须将对象转换为真实类型才能操作它们。如果您知道将使用字符串或 int,则最好使用字符串或 int 而不是对象。此外,这将使代码在将来易于阅读。对象太通用了,什么都没有告诉你。