问题标签 [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.
c# - 列表方法() where T : Iclient 无法将客户端对象添加到列表中
公共 IList GetClientsByListofID(IList ids) 其中 T : IClient { IList clients = new List(); 客户。添加(新客户(3));}
我在这里遇到编译器错误:
无法从“Bailey.Objects.Client”转换为“T”
客户端对象实现 IClient 接口。我的目标是尝试放松我的类之间的耦合(学习 DI 的东西 atm)。我在想我可以说它可以使用任何类型的客户端对象并且会被返回。
我完全不在这儿吗?
谢谢
乔恩·霍金斯
.net - 如何在非泛型 .NET 类型上获取泛型方法的 MethodInfo?
我有这个小问题,我无法弄清楚要传递给 Type.GetMethod 的参数,以便在非泛型类型上取回泛型方法的 MethodInfo。具体来说,我有这个类型定义:
我在 Type.GetMethod 上尝试了几次,但没有一个会返回 F 方法的 MethodInfo。
我知道我可以调用 Type.GetMethods 甚至 Type.FindMember,但我对 Type.GetMethod 很感兴趣。
有任何想法吗?
谢谢。
编辑
实际上,我的代码有点复杂。泛型方法被重载,所以我不能只使用函数名来使用 Type.GetMethod。我尝试了这些变体:
c# - C#:如何使用带有“out”变量的泛型方法
我想创建一个简单的通用函数
用法:
我的问题是你如何编写代码来设置这些值,即。评论部分缺少的代码。
谢谢你的帮助。
c# - C# 反射,使用具有“new()”类型约束的方法的 MakeGenericMethod
我正在尝试使用 MethodInfo MakeGenericMethod,如下所示:
针对以下通用方法:
我遇到的问题是我在 MakeGenericMethod 行上出现争论异常,因为我传递的类型不是“new()”
有没有办法解决这个问题??谢谢
c# - C#动态调用泛型方法
给定以下接口:
我的命名空间中有以下类
目前我正在实现这个 IRepository,如下所示:
有没有更好的方法来实现这一点?鉴于我们的 Context 不知道我们的数据类型(Teacher、Student),只知道它的接口(ITeacher、IStudent)。
像这样的东西可以工作吗?
java - 有没有办法定义一个检查 null 然后创建对象的通用方法?
我想编写一个方法来检查参数在哪里为空,如果是,则返回该类型的新对象。看起来像:
经过一番挣扎和挖掘,我仍然无法实现这一点,在java中它真的可能吗?
一开始我想到了反思。但是当对象为空时,我无法获得 Class 实例,并且如果没有类型 T 的名称,您将无法创建 Class...
更新:
我考虑过将 Class 作为参数传递,但这不是最好的解决方案,如下面的答案所示:)
我当前的解决方案是使用 defaultValue 参数:
这比反射解决方案更快、更安全,并且同样冗长;但是我必须系统地为所有类型的兴趣指定一个 DEFAULT_VALUE,这不是一件容易的事。
c# - 如何使用 RhinoMocks 断言具有三种不同类型的泛型方法?
我正在尝试学习 Rhino Mocks AAA 语法,但在断言某个方法(带有任何参数值)被调用时遇到了麻烦。我使用 Machine.Specifications 作为我的测试框架。
这个特定的方法是通用的,我想确保它被三种不同的类型调用了三次。
我为每种类型的函数存根。但我得到了一个有趣的结果。(以下)
结果是两个例外和一个通过。
第一个调用抛出:
System.InvalidOperationException:没有设置要验证的期望,确保操作中的方法调用是虚拟(C#)/可覆盖(VB.Net)方法调用
第二个抛出:
System.InvalidOperationException:录制时仅在模拟方法调用中使用 Arg。预期 1 个参数,已定义 2 个。
第三个通过了……出于某种奇怪的原因。
我还尝试在我的设置中将 GenerateMock() 与 Expect 结合使用,以及将 GenerateStub() 与 Stub 结合使用。两者都得到了完全相同的结果。我一定是做错了什么。
我正在使用:MachineSpec 0.3.0.0 和 RhinoMocks 3.6.0.0
有任何想法吗?
- - -固定的 - - - - -
这是在 Lee 的帮助下的完整(工作版本)。我正在使用一个额外的(非 linq)层。我的实际问题是我的一项测试在离线真实代码中重新使用了错误的 lambda 变量。它应该做某事 = () => repo.AssertWasCalled( o => repo .Save(data)); //错误的lambda
所以这里有一个正确测试的样本供参考。
scala - scala泛型方法覆盖
我有一个抽象类:
多个类扩展 Foo 并覆盖方法
是否有可能使用泛型(或其他东西)使覆盖方法具有实现它的子类的参数类型?像这样 :
我正在考虑以下内容,但这似乎不起作用......
任何帮助深表感谢!
谢谢你。
c# - 使用反射在具有签名的对象实例上调用泛型方法:SomeObject.SomeGenericInstanceMethod(T 论点)
我怎么打电话SomeObject.SomeGenericInstanceMethod<T>(T arg)
?
有一些关于调用泛型方法的帖子,但不太像这个。问题是方法参数参数被限制为泛型参数。
我知道如果签名是
SomeObject.SomeGenericInstanceMethod<T>(string arg)
然后我可以得到 MethodInfo
typeof (SomeObject).GetMethod("SomeGenericInstanceMethod", new Type[]{typeof (string)}).MakeGenericMethod(typeof(GenericParameter))
那么,当常规参数是泛型类型时,如何获取 MethodInfo 呢?谢谢!
此外,泛型参数上可能有也可能没有类型约束。
c# - lambda 表达式中的变量如何给出其值
在下面的例子中如何index
获得它的价值?我知道 n 是从 source 自动获得的numbers
,但是,虽然含义很清楚,但我看不到 index 是如何赋予其值的:
的签名TakeWhile
是: