Tag: generics

如何从List <Tuple >获取字符串数组?

我想知道是否有一种优雅的方法可以从List<Tuple> string[] ? 我正在考虑.NET方式(最好的扩展方法和lambda表达式:P) PS Code来自.NET 3.5项目,因此Tuple是我自己的实现。

如何将F#函数转换为非genericsSystem.Action?

就像标题一样。 我有一个现有的C#库,我必须使用F#interop访问它。 其中一个方法将非genericsSystem.Action委托作为参数。 如何将F#function(即unit->unit )转换为该委托? 尝试使用直接强制转换时,会发生以下错误: Multiple types exist called ‘Action’, taking different numbers of generic parameters. Provide a type instantiation to disambiguate the type resolution, eg ‘Action’.

奇怪的反编译代码来自generics类中的事件订阅代码

这个简单的课程 public class Test { public static void A(Window wa, Window wb) { wa.Closed += (s, e) => wb.Close(); } } 获取编译为this(我使用Reflector进行反编译): public class Test { [CompilerGenerated] private sealed class c__DisplayClass1 { public Window wb; public void b__0(object s, EventArgs e) { this.wb.Close(); } } public static void A(Window wa, Window wb) { wa.Closed += […]

通用(即)Web用户控件的语法

假设我已经制作了如下网页控件: public class TestControl : WebControl { … } 有没有办法将该控件放在.aspx页面而不必通过代码执行? 我真的希望能够做到这样的事情: <controls:TestControl runat=”server” /> 但据我所知,我无法传递generics参数。 我已经尝试在网上搜索并发现这个http://forums.asp.net/t/1309629.aspx ,这看起来正是我所追求的,但似乎没有人能理解那个人想要的东西,并且我在StackOverflow上找不到类似的东西。

C#中的通用foreach循环

给定以下代码,编译器告诉我“使用未分配的局部变量’x’。” 有什么想法吗? public delegate Y Function(X x); public class Map { private Function F; public Map(Function f) { F = f; } public Collection Over(Collection xs){ List ys = new List(); foreach (X x in xs) { X x2 = x;//ys.Add(F(x)); } return ys; } }

无法将源类型转换为目标类型编译错误

我有这个简单的课程 public class Program { private static void Main(string[] args) { ClassB objA = new ClassB(); ClassB<ITestA> objB = new ClassB(); } } public class ClassB { ///some code here } public interface ITestA { ///some code here } public class MyDTO { ///some code here } public class ClassA : ITestA { ///some code […]

具有generics类声明的命名空间约束

我想知道是否(如果是这样的话)可以将命名空间定义为generics类声明中的约束参数。 我有的是这个: namespace MyProject.Models.Entities < – 包含要在db中保留的类 namespace MyProject.Tests.BaseTest < – 我觉得很明显 现在我的’BaseTest’课程的变化看起来像这样; public class BaseTest 此BaseTest (在编写本文时)执行的操作比删除测试期间添加到数据库的所有实体要多得多。 所以通常我会将测试类声明为: public class MyEntityRepositoryTest : BaseTest 我想要做的是类似于以下内容: public class BaseTest where T : 现在我知道完全可以简单地声明一个’BaseEntity’类, MyProject.Models.Entities命名空间中创建的所有实体都将从该类inheritance; public class BaseTest where T : MyBaseEntity 但是……我实际上并不需要或想要。 另外,我使用ORM和带有inheritance的映射实体,虽然可能,但增加了一层不需要的复杂性。 那么,是否可以将generics类参数约束到命名空间而不是特定类型?

C#中的generics和inheritance

我有ER设计师生成的实体类,我修改了一下。 这是声明: public abstract partial class Preference : EntityObject, IPreference 然后有另一个实体类声明如下: public partial class BoolPref : Preference 所以BoolPrefinheritance自Preferences 。 现在我有了这个生成的属性: public ObjectSet<Preference> Preferences { get { if ((_Preferences == null)) { _Preferences = base.CreateObjectSet<Preference>(“Preferences”); } return _Preferences; } } private ObjectSet<Preference> _Preferences; 当我尝试将新的BoolPref添加到此ObjectSet时,如下所示 context.Preferences.AddObject(new BoolPref ()); 我得到编译时错误。 如何将BoolPref的实例添加到首选项? mystake在哪里?

列出“X”列表的串联

我有例如5列出所有相同的类型。 我能做到吗? List newset = List1.Concat(List2).Concat(List3).Concat(List4)…..

从generics方法问题调用重载方法

我遇到了有趣的事情(在Java和C#中都一样)。 Java代码: public class TestStuff { public static void main(String[] args) { Printer p = new PrinterImpl(); p.genericPrint(new B()); } } class PrinterImpl implements Printer { void print(A a) { System.out.println(“a”); } void print(B b) { System.out.println(“b”); } @Override public void genericPrint(T b) { print(b); } } interface Printer { public void genericPrint(T a); } […]