问题标签 [generic-method]

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 投票
1 回答
112 浏览

c# - C#在通用方法中调用一些将指定类型作为参数的方法

我是 C# 的初学者,并且有问题一直困扰着我。

如果有人提出解决方案,我将不胜感激。

我有一个类似的代码:

你会发现,我想做的很简单。

在 GenericMethod 中用 Type T 生成指定值,并调用指定的 Handle 方法。它可以在 C++ 中工作,但 C# 一直告诉我喜欢

“无法将 'T' 表达式转换为类型 'Object1'”

我怎么解决这个问题 ?提前谢谢。

0 投票
1 回答
49 浏览

c# - 泛型类型和继承混淆

我有一个类层次结构,如下所示:

我有如下业务逻辑类:

现在我要实现的是一个函数,我决定应该为此获得哪个类和 bll 我为函数的返回类型添加了 IBaseBLL 接口

我的功能如下:

当我这样调用函数时:

但我无法在我添加注释“错误行”的行中抛出异常

那么在这种情况下我该怎么办。我唯一想要的是编写一个函数来决定我应该使用哪个 bll。(我不想改变 bll declerations)。

0 投票
1 回答
119 浏览

java - 为什么这段代码会编译?(java泛型方法)

以下代码:

JavaTest.max(List, 0, 0) 语句如何编译?磨砂是如何满足的

它实现Comparable<String>了哪些不是超级类型的scruby?如果您将其更改为scruby<Integer>它将无法编译并给出错误。那为什么现在编译呢?为什么原始类型会编译?

0 投票
2 回答
167 浏览

c# - 具有显式泛型类型行为的奇怪泛型方法调用

我有一个带有泛型方法的非泛型类。此方法的泛型类型定义了输出类型,无法从使用中推断出来,因此我必须显式提供泛型类型。有时这种类型是从通用调用者的方法类型参数传递的,但在一个实例中,我必须自己显式地提供它。

问题是当我调用我明确提供的泛型类型方法调用时,它似乎没有被执行并返回一个完全不相关的类型。我无法调试此调用并获得无效结果。但它并没有破坏特别奇怪的执行。当从调用者的泛型方法类型传递泛型类型的其他地方调用相同的方法时,一切似乎都按照定义工作。

我完全失去了发生了什么。

我在接口中的方法定义(稍后在类中实现):

我的Record类是非抽象的,并且只有一种继承自它的类型:

我正在调用我的方法:

当执行到这一行时,我点击F11调试它,但执行只是跳转到下一句。当我检查我record的变量时,它不是类型Record,而是System.String具有参数的值categoryName。这意味着某些东西确实被执行了,但它绝对不是我的通用方法的主体。

奇怪的是,在其他任何地方,相同的调用都按预期工作。

这怎么解释,我做错了什么?

0 投票
2 回答
1239 浏览

c# - C# 在不知道特定类型的情况下访问泛型方法

我有一个转换List<T>DataTable使用反射的方法。我想通过传递多个列表来利用该方法创建 DataSet,其中每个列表可能包含不同类型的对象。

下面是给我编译时错误的代码:

The type arguments for method 'ExportToExcel.CreateExcelFile.ListToDataTable<T>(System.Collections.Generic.List<T>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.” - 在行“ var dt = Util.ListToDataTable(item);

这是我的调用 testMethod

我认为 Util.ListToDataTable 方法需要特定类型,它只在运行时获得。在这种情况下,我将如何调用此方法?

0 投票
1 回答
346 浏览

c# - 在泛型方法中获取属性类型

我有方法:

如果类 T 具有对象属性,我也想随机生成它们,所以我要做的是:

然后我得到:

找不到类型或命名空间名称 t(您是否缺少 using 指令或程序集引用?)

有什么想法可以解决这个问题吗?

0 投票
1 回答
1037 浏览

c# - 如何使用类的属性名称和对象索引获取 IList 的索引,其中对象和类的属性名称都匹配?

我不确定我是否正确解释了这一点,或者问题是否足够清楚,但这就是我想要做的。

我创建了一个名为 index 的对象,它存储 IList 中元素的索引。这是我的对象索引。

这是我的泛型方法,它从泛型类型获取属性并根据索引中的元素位置设置值。

我这样做的原因有很多,但我这样做的主要原因之一是学习 c# 中的反射。

因此,行是通过读取具有特定分隔符的文件获得的列表。由于列表中的每个值都对应于类的某些属性,因此我创建了一个名为 index 的对象,其名称与类的属性名称相同,并为其分配了值在 IList 中的位置。现在,我想使用索引的属性名称检索行中的值,该索引返回类的属性名称与对象索引的属性名称相同的位置。我上面所做的方式对于检索值是不正确的,但我写它是为了清楚我打算实现的目标。希望我足够清楚,有人可以回答这个问题。

0 投票
1 回答
1062 浏览

c# - 创建泛型方法的异步版本

我有这个反序列化类型的通用方法

现在我希望制作一个我尝试过的异步版本。

显然,异步方法有语法错误,因为我缺少 T。

我也试过这个,我得到了错误。

谁能告诉我编写异步方法的正确方法?

0 投票
1 回答
762 浏览

java - 将 Mockito 用于泛型方法的 ClassCastException

我正在使用 mockito 来测试一个通用方法。但是当我运行 junit-test 时,我得到了一个 ClassCastException。

被测方法如下所示:

模拟看起来像这样:

异常出现在when-method的第二个定义中。看起来该方法只接受一种不可更改的类型。但为什么会这样呢?当我在普通 java 中使用具有两种不同类型的泛型方法时,不会出现异常。

有人可以帮忙吗?

0 投票
2 回答
178 浏览

asp.net-mvc - 是否可以使 HtmlHelper 扩展方法仅对具有特定类型的视图可用

我正在尝试为 IEnumerable 集合实现我自己的分页。所以,我有一个名为 PagedList 的类。我已经完成了类本身,我只需要编写一个 HtmlHelper 扩展方法来呈现实际页面。这将是最简单的方法(至少我能想到):

但是,是否可以仅在那些对 PagedList 强类型化的视图中使此方法可用?