草庐IT

Generics

全部标签

c# - 如何在 C# 中返回委托(delegate)函数或 lambda 表达式?

我正在尝试编写一个方法来返回其自身的一个实例。伪代码为Func>MyFunc(Tinput){//dosomeworkwithinputreturnMyFunc;}看起来很简单。但是我在定义返回类型时遇到问题。返回类型应该是委托(delegate)whichtakesTasparameter,thenreturnsafunctionwhichtakesTasparameter,thenreturnsafunctionwhichtakesTasparameter,thenreturnsafunction...recursivedefinition我确信有一些我没有注意到的细微之处。有人可

c# - 为什么 List<double> 显式转换为 IEnumerable<object> 会抛出异常?

根据这个MSDNreferenceIEnumerable是协变的,这可以将对象列表隐式转换为可枚举对象:IEnumerablestrings=newList();IEnumerableobjects=strings;在我自己的代码中,我写了一行代码,当列表的项目类型是Point类时,它可以完美运行(Point是一个简单的类,具有三个双x、y、z属性):varobjects=(IEnumerable)dataModel.Value;//herepropertyValueisalistthatcouldbeofanytype.但是当列表的项类型为double时,上面的代码返回以下异常:Un

C# - 将实现接口(interface)的对象添加到字典

我有一本字典:privateDictionaryexamples;我有两个实现接口(interface)的类:publicclassExample1:IExample{}publicclassExample2:IExample{}我已经创建了一种从字典中获取实例(如果它存在)的方法,但我正在尝试找出一种方法来实例化一个新对象(如果它不存在)。publicTGetExample()whereT:IExample{//Returnthesignalifitexistsif(examples.ContainsKey(typeof(T))){IExamplevalue;if(!examples

c# - 在 C# 中使用 Type.GetType() 返回的类型

我有一个关于如何可能的问题(如果可能的话:)例如,使用Type.GetType()返回的类型引用来创建该类型的IList?这里是示例代码:Typecustomer=Type.GetType("myapp.Customer");IListcustomerList=newList();//gotanerrorhere=[提前致谢! 最佳答案 像这样:TypelistType=typeof(List).MakeGenericType(customer);IListcustomerList=(IList)Activator.CreateIn

c# - 任何人都可以举一个很好的例子来说明泛型类的用途吗?

我们最近学习了C#中的泛型类,但我们的老师没有提到它们的用途。我真的找不到任何好的例子,如果有人帮助我,我会非常高兴:)你有没有制作自己的泛型类,你用它做什么?一些代码示例会让我和我的同学们非常高兴!请原谅糟糕的英语,我来自瑞典:)快乐的编程!抱歉-我想我可以把问题写得更好一些。我熟悉通用集合。我只是想知道您自己的泛型类可以用来做什么。感谢您提供MSDN链接,我在发布问题之前确实阅读了它们,但也许我错过了什么?我再看看! 最佳答案 通用集合集合泛型非常有用,因为它们允许编译时类型安全。这很有用,原因如下:检索值时不需要转换。这不仅有

c# - .Equals 上的 C# 泛型方法中的意外行为

为什么Equals方法返回的结果与泛型方法不同?我认为这里有一些我不明白的自动装箱。这是一个重现.net3.5或4.0行为的示例:staticvoidMain(string[]args){TimeZoneInfotzOne=TimeZoneInfo.Local;TimeZoneInfotzTwo=TimeZoneInfo.FindSystemTimeZoneById(tzOne.StandardName);Console.WriteLine(Compare(tzOne,tzTwo));Console.WriteLine(tzOne.Equals(tzTwo));}privatestat

c# - 在 Lazy<T> 中转换接口(interface)类型

我想要这样的东西:publicinterfaceIAnimal{}publicclassDog:IAnimal{publicDog(){}}publicclassCat:IAnimal{publicCat(){}}publicabstractclassTestClassBase{publicTestClassBase(){_lazyAnimal=CreateLazyAnimal();}privateLazy_lazyAnimal=null;publicIAnimalAnimal{get{IAnimalanimal=null;if(_lazyAnimal!=null)animal=_la

c# - C# 4 中会有通用属性吗?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。所以-如果thereisn'tparticularreason为什么没有通用属性,我想知道-也许它们会得到实现?那些对于ASP.NETMVCAction过滤器来说会很棒。

c# - 参数数量未知的 Func<>

考虑以下伪代码:TResultFoo(Funcf,paramsobject[]args){TResultresult=f(args);returnresult;}函数接受Func具有未知数量的通用参数和相应参数的列表。可以用C#写吗?如何定义和调用Foo?我如何通过args至f? 最佳答案 您可以将Delegate与DynamicInvoke一起使用。有了它,您就不需要处理f中的object[]。TResultFoo(Delegatef,paramsobject[]args){varresult=f.DynamicInvoke(ar

c# - IsGenericType 和 IsGenericTypeDefinition 之间的区别

Type.IsGenericType和Type.IsGenericTypeDefinition有什么区别?有趣的是,MSDN的IsGenericTypeDefinition链接已损坏。更新:IsGenericTypeDefinitionMSDN'sentry在尝试检索给定DbContext中定义的所有DbSet后,我​​得到了以下结果,我试图理解这种行为:通过IsGenericType过滤属性返回所需的结果,而使用IsGenericTypeDefinition则不(不不返回任何)。有趣的是,来自this帖子我的印象是作者确实使用IsGenericTypeDefinition获得了他的D