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