问题标签 [internal-class]

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 投票
3 回答
2055 浏览

c# - 内部类接口的扩展方法

我目前正在尝试编写Dynamic Linq的扩展。为此,我需要向IEnumerableSignatures位于内部类中的接口添加方法签名ExpressionParser

虽然我可以直接将签名添加到代码中,但我宁愿将其定义为接口的扩展方法,以保持原始代码的整洁。通常,要添加方法DefaultIfEmpty,我会这样做:

但是,这会产生访问错误,因为ExpressionParser是内部的。我已经尝试了类和方法的几种访问级别组合。

有没有办法向这样的接口添加扩展方法,还是我必须弄乱原始代码?

[编辑]事实证明,即使将接口本身设为内部(或就此而言是公共的),动态 linq 也无法识别它。我在运行时仍然有一些未找到的异常。因此,编辑 codeplex 代码没有(明显的)方法。[/编辑]

0 投票
1 回答
905 浏览

c# - 从不同的 Dll 文件访问内部类

我对一些不应该工作的代码感到困惑,但奇怪的是,它正在工作,我知道我只是忽略了一些明显的东西。我正在查看Accord.NET框架的源代码,我下载了它并且编译得很好,但我对某些事情感到困惑。在其中一个名为 Accord.Math 的程序集中,有一个名为Indices.cs的文件。这是定义:

您可以在第 35 行看到这一点。

在另一个名为 Accord.Statistics 的程序集中,有一个名为Tools.cs的文件。在该文件中,有这一行:

您可以在第 329 行看到这一点。

我对这条线如何引用Accord.Math.Indices该类感到困惑,因为它被标记为internal. 我的理解是,标记为的类internal只能由驻留在同一 DLL 文件中的类访问。有人可以解释这是如何工作的吗?

0 投票
0 回答
204 浏览

c# - 在第三方程序集中使用公共构造函数实例化内部类

我想用公共构造函数实例化第三方的内部类,确切地说是类 Microsoft.AnalysisServices.XmlaClient。理想情况下,我希望最终能够访问 instance.Connect(blabla) 等方法。这可以通过反射实现吗?

0 投票
1 回答
47 浏览

c# - 内部接口导致 DRY 违规

我有以下内容:

似乎有必要在没有“as”强制转换的情况下编译以下内容:

结果是除非我遗漏了什么,否则采用内部接口将不可避免地导致这种 DRY 违规。另一种方法是公开 Person 类。

我错过了什么吗?

0 投票
3 回答
318 浏览

c++ - 如何在 C++ 中实现内部抽象成员类?

抽象类具有内部虚函数。抽象类可以有内部虚拟类稍后实现吗?

我尝试了以下方法:

Child是一个抽象类,将在派生类中被覆盖。我希望实现的Child可以用来定义一个函数。

但是,我收到一个错误:

成员函数'virtual C1::Child C1::getChild()'的无效抽象返回类型

我不能在派生类中实现一个内部抽象类,就像实现一个虚函数一样吗?

0 投票
0 回答
39 浏览

c# - 获取内部子类属性父类名

具有以下 Helper 静态类

有以下方法

可以这样调用:

我还想在 GetSettings 方法中访问 set3 的父类的名称。所以我不仅会知道 set3 的值是“rbcd”,我还会知道名称“P2”,然后是“Properties”和“Helper”。但我不知道该怎么做。有什么想法或建议吗?

0 投票
1 回答
399 浏览

c# - (很多)内部方法可以避免吗?(接口,工厂模式)

我目前正在开发一个机器人,并且有大约 8 个用于不同对话框的单独类(都在同一个命名空间中!)。它们都包含不同的任务,因此我遇到了一个小问题。我想知道最佳实践是什么:使用接口,使用工厂模式……然而,所有这些选项都迫使我使用内部方法。(我通过接口得到它,因为你承诺某些行为,但是对于工厂模式我真的不知道 - 老实说......)因为没有特定方法的定义 - 但这意味着我必须做出很多这些内部方法,我试图避免冗余。

首先我只是实例化了一个新对象,但我很快意识到这意味着每次调用机器人时都会创建一个各种类型/对话框的新对象——这不是很有效,对吧?我也尝试在构造函数中实例化它们,但这迫使我使用接口,这给我带来了与我之前所说的相同的问题。我也研究了部分类,但我不确定使用 8 个部分类是否真的......好吗?

现在我正在用这段代码尝试工厂模式:(感谢这个线程:How to prevent an instance of an object in c#

为了给出对话框看起来的一些上下文,我还将在此处添加名称对话框:

我尝试在主方法中访问 AddNameResponse 任务,如下所示:await dialog.CreateDialog("name").AddNameResponse(turnContext, profile, value);这不被接受,但是给了我以下警告:“DialogFactory”不包含“AddNameResponse”的定义,并且没有可访问的扩展方法“AddNameResponse”接受第一个参数'对话工厂'。修复将是一个内部任务,但我试图避免这种情况(之前给出的原因)。

我真的很茫然,因为我不知道最佳做法是什么。我正在尝试制作我可以制作的最有效和最干净的代码,并避免冗余并尽可能多地使用松散耦合 - 但我不知道如何在这种情况下实现这一点......我希望我已经制定了我的问题足够好(也是问题)!

0 投票
1 回答
56 浏览

java - 带有内部错误的 LayoutInflater.java

在我的“本机”LayoutInflater.java 中,有几个导入不起作用,导致几个错误警告。在 Android Studio 要求更新某些内容后,我注意到了它,但我不记得它是什么了。顺便说一句,即使在格式化计算机并重新安装 Android Studio 之后,问题仍然存在。

失败的导入是:

因此,类中与这些导入相关的所有内容都是红色的,而且其中有很多。

我的 Android Studio 版本是:Android Studio 4.1.1 Build #AI-201.8743.12.41.6953283,构建于 2020 年 11 月 4 日运行时版本:1.8.0_242-release-1644-b01 amd64 VM:JetBrains 的 OpenJDK 64-Bit Server VM sro Windows 10 10.0 GC:ParNew、ConcurrentMarkSweep 内存:1237M 内核:8 注册表:ide.new.welcome.screen.force=true、external.system.auto.import.disabled=true

正常吗?它会以某种方式影响我的应用程序吗?

感谢您的关注和帮助。