gpt4 book ai didi

c# - C#/Java 中动态对象的限制

转载 作者:行者123 更新时间:2023-11-30 02:57:44 26 4
gpt4 key购买 nike

我基本上是一个尝试尝试 C# 的 C++ 人。从C#的基础教程中,我偶然发现所有对象都是动态创建和存储的(Java也是如此)并且通过引用访问,因此不需要复制构造函数。将对象传递给函数或从函数返回对象时也不需要按位复制。这使得 C# 比 C++ 简单得多。

但是,我在某处读到,仅通过引用对对象进行操作会对可以执行的操作类型施加限制,从而限制了程序员的完全控制权。一个限制是程序员无法精确指定何时可以销毁对象。

有人可以详细说明其他限制吗? (如果需要,带有示例代码)

最佳答案

大多数“限制”是设计使然而不是缺陷(当然你可能不同意)

你无法确定/你不必担心

  • 当对象被销毁时
  • 对象在内存中的位置
  • 它有多大(除非您正在调整应用程序)
  • 使用指针运算
  • 从外部访问对象
  • 访问类型错误的对象
  • 线程间共享对象更简单
  • 对象是在栈上还是堆上。 (栈在Java中用的越来越多)
  • 内存碎片(并非所有收集器都如此)

关于c# - C#/Java 中动态对象的限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14275583/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com