问题标签 [subclassing]

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.

0 投票
6 回答
9547 浏览

iphone - 为什么 Apple 不允许 UINavigationController 的子类化?我有什么替代子类化的方法?

我目前正在构建一个选项卡式 iPhone 应用程序,其中每个选项卡的视图控制器都是 的实例UINavigationController,并且每个UINavigationController实例的每个子控制器都是UITableViewController. 理想情况下,我想进行子类UINavigationController化,以便每个选项卡的控制器都是 UINavigationController 的子类,它(UINavigationController显然除了具有所有标准功能之外)充当与其子控制器关联的每个表视图的数据源和委托. 尝试这样做似乎破坏UINavigationController了子类中的基本功能。

正如Apple在他们的iPhone文档中所说的那样,一个人不应该子类化UINavigationController,而且事情似乎会中断,我想知道我应该如何在UINavigationController's没有子类化的情况下扩展功能,一般来说,当一个人应该如何解决子类化限制时做可可开发。

谢谢!

0 投票
1 回答
902 浏览

c# - C#:什么正在破坏我的 NativeWindow 对象,为什么?

我正在使用一个NativeWindow对象对非托管窗口的消息泵进行子类化,目的是拦截其消息。

代码结构看起来像这样(它的伪 C#,请原谅小的语法问题):

现在,我认为如果我的对象因 GC 而死,设置一个事件侦听器就足以让垃圾收集器处于停顿状态。如果不是,是否有可能追踪如何以及为什么?我从来不知道.Net会因为代码错误而杀死对象(例外和偶尔的静默失败似乎是事情的一般要点),我不知道主机应用程序如何或为什么(我的应用程序是一个 COM 服务器非托管代码)也有足够的知识来杀死我的对象。

鉴于该对象看似随机死亡(我无法确定一组特定事件,只是它在调用 StartMonitoring() 后不到一秒到几分钟内死亡。

看起来这HandleRef可能会解决我的问题,但是我不清楚如何在这种情况下使用它,而且我想不出如何将它放入我的代码中(除了可能在 AppSubclass 级别声明一个然后分配它SpecialAppWndProc 对象。

那么,在我准备好让我的对象死亡之前,如何防止它死亡呢?

0 投票
1 回答
2614 浏览

c# - C#:从 SendMessage() lParam 编组“指向 int 数组的指针”

我正在尝试使用从 NativeWindow 继承的类从我的托管 COM 服务器子类化一个非托管状态栏窗口,并且正在尝试理解如何正确编组 lParam 的内容。

http://msdn.microsoft.com/en-us/library/bb760757%28VS.85%29.aspx说这个 lParam 的内容是 type (LPARAM)(LPINT) aWidths,这个变量的内容实际上是一个“指向整数数组。”

我想不出一种正确编组的方法。目标是读取 lParam,将我们的值添加到数组中,然后通过base.wndProc(ref m).

如果我能做到这一点会很好int[] array = (int[])m.*lParam,但生活并不是那么简单(而且我不会使用不安全的代码)。我笨拙地试图强迫编组器给我一些东西,Marshal.PtrToStructure()但我知道这从一开始就注定了,因为 C 数组不是结构,而且我试图制作的结构显然不是 blittable。

现在我们让原始调用通过,然后进行额外的 WinAPI 调用来获取数组,格式化它,然后在状态栏重新绘制之前重新发送它。这运作良好,但还不够好。

有任何想法吗?

谢谢!

汤姆

PS-我在 C# 中如何使用 lParams 时遇到了很多麻烦,文档很混乱:-/

0 投票
1 回答
505 浏览

actionscript-3 - 在 AS3 中进行子类化时,是否需要新的构造函数?

基本面向对象问题...

我想在 Array 类中添加几个函数,这样我的程序就会很棒,让我一夜成名。

所以我创建了一个新的子类 NewArray,它扩展了 Array。我需要为 NewArray 编写构造方法吗?如果我把它留空,它会只使用父级(数组)的构造方法吗?

谢谢

0 投票
3 回答
3379 浏览

python - Python中的小数子类化

我想在我的 Python 程序中使用 Decimal 类进行财务计算。不能与浮点数一起使用的小数 - 它们需要首先显式转换为字符串。所以我决定继承 Decimal 以便能够在没有显式转换的情况下使用浮点数。

m_Decimal.py:

所以现在D(5000000)*D(2.2)我应该能够写D(5000000)*2.2而不是写而不是引发异常。

我有几个问题:

  1. 我的决定会给我带来麻烦吗?

  2. 在 的情况下重新实现__mul__不起作用D(5000000)*D(2.2),因为另一个参数是 type class '__main__.m_Decimal',但是您可以在十进制模块中看到:

十进制.py,第 5292 行:

十进制模块期望参数是十进制或整数。这意味着我应该先将我的 m_Decimal 对象转换为字符串,然后再转换为十进制。但这很浪费 - m_Decimal 是 Decimal 的后代 - 我如何使用它来使课程更快(Decimal 已经很慢了)。

  1. 当 cDecimal 出现时,这个子类化会起作用吗?
0 投票
3 回答
599 浏览

python - Python:具有程序员定义属性的文件

使用 Python 2.5,我想创建一个临时文件,但添加(和修改)我自己的属性。我尝试了以下方法:

但是,我收到以下错误消息:

我也尝试过 subclassing file,但这也不起作用。

有什么建议么?

0 投票
2 回答
2126 浏览

objective-c - NSCoder 的示例(最好是简单的)子类?

我正在尝试创建 NSCoder 的子类,但我真的不知道从哪里开始。Apple 的文档列出了需要哪些方法,但仅此而已。也许我的 Google-fu 很弱,但我找不到任何实现的例子,例如encodeValueOfObjCType:at:,任何地方。(虽然我认为它涉及很多案例。)

encodeValueOfObjCType:at:任何人都知道我可以查看的 NSCoder 示例子类,或者知道一两个案例decodeValueOfObjCType:at:应该是什么样子?

0 投票
1 回答
1665 浏览

c++ - Safely remove window subclassing?

I am trying to subclass the currently focused window on a Windows system using a global CBT hook. This is related to what happens in this question, but the bug is different.

What happens when this subclassing is in effect, is that Opera's (version 10.50) main window is prevented from displaying. Opera has a "splash screen" where you are required to click "Start" for the main window to show that appears after Opera has not shut down properly. Whenever this window pops up, Opera's main window won't show. If Opera was shut down properly, and this splash screen does not show, the main window displays as it should.

My suspicion is that Opera's main window is somehow already subclassed. I imagine the following is happening:

  1. The window is created with it's own basic WndProc, and is given focus
  2. My application subclasses the window, storing the original WndProc
  3. Opera subclasses its own window
  4. When the window loses focus, I restore the original WndProc, thus ignoring the second WndProc

Can this really be the case? Are there any other explanations?

0 投票
2 回答
856 浏览

c# - 从c#中的线程子类化窗口

我正在创建一个寻找窗口的线程。当它找到窗口时,它会覆盖它的 windowproc,并处理 WM_COMMAND 和 WM_CLOSE。

这是查找窗口并将其子类化的代码:

和windowproc:

这一切都在正常条件下运作良好。但是我看到了两个不良行为的例子,按不良顺序排列:

  1. 如果我在一分钟左右没有关闭对话框,应用程序就会崩溃。这是因为线程正在收集垃圾吗?就 GC 可以告诉线程已完成而言,这有点道理?如果是这种情况,(我不知道是这样),只要对话框还在,我怎样才能让线程一直存在?

  2. 如果我立即使用“X”按钮 (WM_CLOSE) 关闭对话框,应用程序就会崩溃。我相信它在 windowproc 中崩溃了,但我无法在其中找到断点。我收到 AccessViolationException,异常显示“尝试读取或写入受保护的内存。这通常表明其他内存已损坏。” 这是一个比赛条件,但我不知道。仅供参考,一旦我处理了命令,我就一直在重置旧的 windowproc,但这更频繁地崩溃!

关于如何解决这些问题的任何想法?

0 投票
2 回答
1752 浏览

javascript - 如何子类化特定的 jqueryui 小部件方法?

自从我将 jQueryUI 更新到 1.8 后,我在我们的实现中发现了一些问题,如果我能找到如何子类化 datepicker 小部件的特定方法,我可以自己修复它而无需等待最终修复,所以我调用父代码然后执行我的代码。

我正在阅读 $.widget 但我无法理解它是如何工作的。

我试过这样的事情:

以及各种其他变体,并开始认为我只是不了解 jQueryUI 的“可扩展性”,或者无法完成。

有谁知道我怎么能做到这一点?

谢谢