小编hco*_*bda的帖子

是否可以在C#中定义通用lambda?

我在一个操作指定类型的方法中有一些逻辑,我想创建一个封装逻辑的通用lambda.这就是我想要做的精神:

public void DoSomething()
{
    // ...

    Func<T> GetTypeName = () => T.GetType().Name;

    GetTypeName<string>();
    GetTypeName<DateTime>();
    GetTypeName<int>();

    // ...
}
Run Code Online (Sandbox Code Playgroud)

我知道我可以将类型作为参数传递或创建泛型方法.但我很想知道lambda是否可以定义自己的泛型参数.(所以我不是在寻找替代方案.)据我所知,C#3.0不支持这一点.

c# lambda c#-3.0

23
推荐指数
2
解决办法
8689
查看次数

关闭因为它能做什么或因为它做什么

好吧,这是一个迂腐的问题,但我想确保我正确理解这个定义.使用封闭的绰号来形容匿名函数可以解除在局部范围内的变量(无论他们实际上做还是不做)或者只有当他们解除局部范围内的变量?

换句话说,如果一个匿名函数能够在其局部范围内提升变量(因为语言提供了这种能力)但是没有,它仍然被认为是一个闭包吗?

我的理解是,只有当局部变量被解除时,它才是闭包.但是一个没有的匿名函数(尽管它可以)不是一个闭包.因此,并非所有匿名函数都是闭包,但所有闭包都是匿名函数.

再次,抱怨迂腐,但这些东西啃着我.:)

closures functional-programming

15
推荐指数
2
解决办法
4809
查看次数

C#.NET中的DDD"模块"

在埃文斯DDD书中,他谈到用"模块"将域中的概念隔离开来.术语"模块"可以转化为软件开发中的许多不同的东西,无论是概念的还是具体的,所以我想知道如何在C#.NET系统中表达这个DDD模块的概念,如果有任何直接的相关性,在软件开发中使用术语"模块"的其他用法(例如,Evans提到某些开发人员将DDD模块表示为Java包,我认为这类似于.NET程序集).

我认为你可以用单独的.NET程序集或者命名空间来表达这个概念(这就是现在正在做的事情).我们正计划减少解决方案中的项目数量,以缩短构建时间,因此我真的对如何在单个程序集中应用此概念感兴趣.

谢谢!

.net c# domain-driven-design

10
推荐指数
1
解决办法
1076
查看次数

引用TypeScript类型定义

我正在使用SystemJS/jspmTypeScript定义管理器在TypeScript中构建Aurelia应用程序.我.ts有源文件/app/**.d.ts文件下/typings/**/jspm_packages/**(因为一些定义文件通过jspm发货).

显然,TypeScript编译器不了解SystemJS/jspm或TSD,因此我需要以某种方式引用它们管理的类型定义.我已经尝试将所有.ts文件传递给编译器,因此它引用了源代码和定义,但这导致了必须下载所有类型定义导入的所有类型定义的漏洞.它最终是类型定义开始(哟dawg我听说你喜欢类型定义).似乎编译器应该只关心由源直接引用的类型定义导出的东西(而不是那些定义导入的东西).

无论如何,我感觉我的方式是错误的,我想知道是否有更好/正确的方式来引用定义文件.

PS:看起来可能有一些涉及编辑器/插件的解决方案,但我正在寻找一种严格的CLI方法,因为这是自动构建的一部分.

typescript aurelia

6
推荐指数
1
解决办法
561
查看次数

在StructureMap中为构造函数注入注册相同查找类型的多个映射

所以我想要注册特定查找类型的n个映射.IE:

x.For<IWidget>().Add<SquareWidget>();
x.For<IWidget>().Add<YellowWidget>();
Run Code Online (Sandbox Code Playgroud)

我想让SM将一个枚举(或数组)注入到类的构造函数中:

public class Machine
{
    public Machine(IEnumerable<IWidget> widgets) { ... }
}

ObjectFactory.GetInstance<Factory>()
Run Code Online (Sandbox Code Playgroud)

我没有办法做到这一点,但我可能会遗漏一些东西.

TIA,

PS:请不要回答"你为什么这样做"或其他不相关的评论.我意识到这可以通过其他方法来实现.如果这种特殊方法可行,我真的很好奇.:)

structuremap

2
推荐指数
1
解决办法
854
查看次数