问题标签 [object-reference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java 中是否有可扩展的对象引用列表?
在 Java 中,我们总是可以使用数组来存储对象引用。然后我们有一个 ArrayList 或 HashTable 可以自动扩展来存储对象。但是有谁知道拥有一个可自动扩展的对象引用数组的原生方式?
编辑:我的意思是我想知道 Java API 是否有一些类能够存储对对象的引用(但不存储像 XXXList 或 HashTable 这样的实际对象)以及自动扩展的能力。
c# - 有没有一种好方法来执行 WPF/C# 对象取消引用以进行垃圾收集?
应用背景
我们的平台是一个点击一次的 WPF 应用程序。我们有一个包含导航菜单结构的“shell”,它托管我们自己的自定义“页面”类。当您导航到新页面时,我们会(基本上)换掉 shell 的内容。
问题
所以,我为一家从事大型软件项目的公司工作。我们发现有很多代码存在内存问题。
问题是在我们的应用程序中有很多地方是事件是有线的而不是无线的。我不确定开发人员为什么要这样做,我猜他们希望每次用户导航到新的“页面”时都会清理对象。
我们没有重构每个页面的选项(在此版本中)。C# 有没有办法从对象中删除所有引用?(因此允许垃圾收集器将该对象连同它的所有内部引用一起丢弃)
我们正在尝试取回这些内存,但是当我们需要处理 WPF 时,要找到仍在引用我们的页面(对象引用)的对象是相当复杂的。
我们已经查看了可视化和逻辑树,并使用分析应用程序来帮助我们手动清理事物(为了证明这个想法),这也被证明是非常困难的。
我坐下来想,为什么我们要做所有这些工作来查找对象引用,我们不能在关闭时“取消引用”这个“页面”吗?
这把我带到了这里:)
非常感谢任何帮助!
更新 1
在评论中,有人问了以下问题:
问:应用程序。真的有记忆问题吗?这些是如何展示/检测的?还是在 GC2 发生之前这段记忆一直存在?– 米奇小麦
A:内存有问题。如果我们离开一个页面(保存页面的属性被设置为一个新对象),旧对象永远不会被垃圾收集器收集。所以记忆只是不断增长。如果我们公司重新开始,请使用此应用程序。我们应该看的第一件事是实现 WeakEvent 模式并在 WPF 中使用更多路由命令。
更新 2
我能够想出自己的解决方案。
c# - C# 中的对象实例
为什么我得到“对象引用未设置为对象的实例”
---------我假设 FindControl 不起作用。
flash - 自定义 AS3 类添加到 Array 后为空
我是一名 C# 开发人员,正在尝试学习一些 AS3,所以这将是一个非常新手的问题。
我对范围和 GC 感到困惑,因为我有一个自定义的 MovieClip 扩展类 (Slide),我在循环中创建实例并将 push() 放入一个数组中,但是之后当我拉取它们时这些项目为空出集合。
我希望以后能够引用幻灯片,以便根据需要切换它们 - 如何保持对新对象的引用?
更新:这似乎有两个问题。在调用 URLLoader 的完整事件之前进行了 forEach 调用,而且 forEach 似乎也没有按预期工作。这是最终的工作代码:
asp.net - 为什么我在回发时丢失了对象引用?
我正在开发一个 asp.net (3.5) 应用程序,我对回发的行为感到困惑。
考虑以下场景:我有一个基本上是表单的 Web 用户控件。然而,每个表单域本身就是一个 Web 用户控件。
在保存按钮的单击事件中,我遍历表单中的所有控件,并检索字段值和引用我将值保存到的数据库字段的字段名称。
点击事件触发回发,在回发期间我访问了控件,有趣的是:数据库字段的属性值变为空!任何人都可以在这里阐明一下吗?
这是一些基本代码:
c# - C# 报告“对象引用未设置为对象的实例”中的 LINQ DataContext.SubmitChanges()。
我想很多人都遇到过这个问题,但我无法解决它或理解我为什么会遇到它。我已经把头发扯了几个小时了。
我收到错误消息“对象引用未设置为对象的实例。” 在我的 datacontext.SubmitChanges() 上第二次运行此方法(我正在循环一组 ObjectName 字符串):
我认为这是因为 result.Name 值可以为空,但我不再这么认为了。
似乎 dataContext 正在以某种方式关闭?但是在调试模式下,我检查了连接的状态,错误发生后它是“打开的”。
我正在使用存储库模式和 ASP.NET MVC。
结果对象 (new Object()) 是 LINQ DBML 自动生成的类的一个实例,该类还具有我创建的带有单个扩展方法的部分类。我看不出类的扩展是如何导致问题的。
我没主意了。
有什么想法吗?感谢您的任何帮助,您可以提供!!
此致,
埃里克
python - 为什么 Python 中的 List 参数表现得像 ByRef?
这可能适用于大多数语言,但我不确定。我是 Python 的初学者,一直致力于 C# 和 VB 中的列表副本。但是在 Python 中,每当我将列表作为参数传递并通过使用“for i in range”进行枚举,然后更改列表参数的值时,输入值实际上会更改原始列表。我认为 Python 应该默认按值传递参数,这样一旦函数完成,我仍然拥有调用函数之前的原始值。我错过了什么?谢谢!
.net - .NET XmlSerializer 和对同一对象的多个引用
我的存储库有List<Student>
,List<Course>
并且List<Enrolment>
Enrollment 有 Enrolment.Student 和 Enrolment.Course ,它们是前两个列表中的学生或课程之一的引用。
当我在我的存储库上使用 XmlSerializer 时,它会输出冗余数据,因为它会序列化每个学生的所有属性,List<Student>
然后再次对List<Enrolment>
. 我正在寻找一种优雅的方法来解决这个问题。
反序列化后,我可以使用反序列化创建的重复对象实例中的 ID 值来修复引用,但这似乎很不自然。
修复冗余输出的一种方法是 XmlIgnore Enrolment.Student 和 Enrolment.Course 并为序列化创建另外两个属性 - Enrolment.StudentID 和 Enrolment.CourseID。但是,在反序列化期间,无法设置 Enrolment.Student 和 Enrolment.Course 的引用(AFAIK),因为反序列化的结果List<Student>
不可List<Course>
用。
我想到的另一种方法是在我的对象层次结构中序列化较低,分别执行我的每个列表并控制反序列化的顺序 - 我宁愿不这样做。
另一种方法是 XmlIgnoreList<Enrolment>
并创建一个注册序列化助手类,该类List<Enrolment>
在自身的反序列化完成后进行初始化。这似乎是一个很大的努力。
其他人如何使用 XmlSerializer 序列化/反序列化对同一对象的多个引用?
c# - object reference is not set to an instance of an object repository
I am getting an XAMLParseException that is really covering up another exception. Here is part of the stacktrace:
Message=Object reference not set to an instance of an object.
Source=AssignmentOrganizer
StackTrace:
at AssignmentOrganizer.MainWindow..ctor() in C:\Users\Mohit\Documents\Visual Studio 2010 \Projects\AssignmentOrganizer\AssignmentOrganizer\MainWindow.xaml.cs:line 29
Here is line 29:
Where lvwMain is a ListView and _assignmentsRepo is an IAssignmentRepository declared like:
That is where the error occurs. I am using the repository pattern Anyone willing to take a guess?
Here is my XAML:
asp.net - 为什么此事件处理程序代码会导致未将对象引用设置为对象的实例。错误(仅出现在实时服务器上,在开发人员上还可以)?
这是按钮单击事件的代码;
这是堆栈:
VS2008 离线时一切正常,但发布后出现此错误。
谢谢。