问题标签 [internals]

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 回答
42564 浏览

wpf - 如何访问 WPF ListView 的 ListViewItems?

在一个事件中,我想将焦点放在 ListViewItem 模板中的特定文本框上。XAML 如下所示:

我在后面的代码中尝试了以下内容:

但我似乎误解了FindName()文档,因为它返回null.

ListView.Items没有帮助,因为(当然)包含我绑定的业务对象并且没有 ListViewItems。

也没有myList.ItemContainerGenerator.ContainerFromItem(item),它也返回 null。

0 投票
6 回答
18475 浏览

c# - c# 如何计算出对象的哈希码?

这个问题来自关于tuples的讨论。

我开始考虑元组应该具有的哈希码。如果我们接受 KeyValuePair 类作为元组呢?它不会覆盖 GetHashCode() 方法,所以它可能不会知道它的“孩子”的哈希码......所以,运行时将调用 Object.GetHashCode(),它不知道实物结构。

然后我们可以创建一些引用类型的两个实例,它们实际上是 Equal,因为重载了 GetHashCode() 和 Equals()。并将它们用作元组中的“孩子”来“欺骗”字典。

但它不起作用!运行时以某种方式计算出我们的元组的结构并调用我们类的重载 GetHashCode!

它是如何工作的?Object.GetHashCode() 做了什么分析?

当我们使用一些复杂的键时,它会在一些糟糕的情况下影响性能吗?(可能,不可能的情况......但仍然)

以这段代码为例:

更新我想我已经找到了对此的解释,如下所述。它的主要成果是:

  • 小心你的密钥和它们的哈希码:-)
  • 对于复杂的字典键,您必须正确覆盖 Equals() 和 GetHashCode()。
0 投票
14 回答
14962 浏览

c# - 我应该默认使用内部可见性还是公共可见性?

我是一个相当新的 C# 和 .NET 开发人员。我最近使用 C# 创建了一个 MMC 管理单元,并且对它的简单性感到满意,尤其是在我的组织中的一些其他开发人员听到很多关于用 C++ 执行它有多难的恐怖故事之后。

我几乎在某个时候完成了整个项目,并将“public”关键字的每个实例都设置为“internal”,除非运行时需要运行管理单元。您对此有何感想,您通常应该将类和方法公开还是内部?

0 投票
22 回答
220388 浏览

c# - C# 中“internal”关键字的实际用途

你能解释一下internalC#中关键字的实际用法吗?

我知道internal修饰符限制了对当前程序集的访问,但是我应该在什么时候以及在什么情况下使用它?

0 投票
5 回答
33790 浏览

database - 数据库如何在内部工作?

在过去的几年里,我一直在使用数据库,我想我已经相当有能力使用它们了。然而,我最近阅读了乔尔的泄漏抽象定律,我意识到即使我可以编写一个查询来从数据库中获取几乎任何我想要的东西,但我不知道数据库实际上是如何解释查询的。有谁知道任何解释数据库内部工作原理的好文章或书籍?

我感兴趣的一些具体事情是:

  • 数据库实际上做了什么来找出与 select 语句匹配的内容?
  • 数据库如何将连接解释为具有多个“其中 key1 = key2”语句的查询?
  • 数据库如何存储其所有内存?
  • 索引是如何存储的?
0 投票
4 回答
10442 浏览

c# - C#中静态构造函数/初始化器的顺序

在开发 C# 应用程序时,我注意到在几个地方静态初始化器相互依赖,如下所示:

没有做任何特别有效的事情。这只是运气吗?C# 是否有解决此问题的规则?

编辑:(回复:Panos)在文件中的词法顺序似乎是王道?跨文件呢?

在寻找时,我尝试了这样的循环依赖:

并且程序运行不一样(测试套装全面失败,我没有进一步研究)。

0 投票
7 回答
54933 浏览

debugging - 调试器如何工作?

我一直想知道调试器是如何工作的?特别是可以“附加”到已经运行的可执行文件的那个。我知道编译器将代码转换为机器语言,但是调试器如何“知道”它所附加的内容?

0 投票
1 回答
18268 浏览

java - Spring Framework 和其他 IoC 容器的内部结构

我使用 spring 已经有一段时间了,但我一直想知道它是如何工作的,更具体地说,它们如何加载和编织仅使用接口或@annotation标记的 bean/类。

对于 xml 声明,很容易看到 spring 如何预处理我的 bean(它们是在 spring 读取的 xml 上下文中声明的),但是对于仅用注释标记的类,我看不到它是如何工作的,因为我没有将任何代理传递给 jvm 左右。

我相信有一些 Java/JVM 钩子允许您通过某种标准预处理类,但我无法在文档中找到任何内容。

有人可以指点我一些文档吗?这与java.lang.instrument.ClassFileTransformer API 有关吗?

0 投票
3 回答
721 浏览

python - 如何在 Python 中计算字节码,以便可以适当地修改 sys.setcheckinterval

我有一个使用工作队列和线程的端口扫描应用程序。

它使用简单的 TCP 连接并花费大量时间等待数据包返回(最多半秒)。因此线程不需要完全执行(即前半部分发送一个数据包,上下文切换,做一些事情,回到有网络数据等待它的线程)。

我怀疑我可以通过修改默认值 100 来提高性能sys.setcheckinterval(在切换到另一个线程之前最多可以执行 100 个字节码)。

但是在不知道线程或函数中实际执行了多少字节码的情况下,我盲目地猜测值,测试和依赖测试显示出可测量的差异(这很困难,因为正在执行的代码量很少;一个简单的socket 连接,因此网络抖动可能会影响任何测量,而不是更改 sys.setcheckinterval)。

因此,我想找出某些代码执行中有多少字节码(即一个函数或线程执行的总数),以便我可以更明智地猜测将 sys.setcheckinterval 设置为什么。

0 投票
1 回答
636 浏览

multithreading - 如何在win32 中获取线程的当前状态(例如阻塞、挂起、运行等)?

我找不到产生此信息的文档化 API。

一位朋友建议我使用 NtQuerySystemInformation。查找后,信息就在那里(参见SYSTEM_THREAD),但它没有记录,而且不是很优雅——我得到了系统中所有线程的信息。

你知道一个更优雅、最好有文档的 API 来做到这一点吗?