小编Dav*_*ams的帖子

当只在运行时知道Type时,如何使用表达式树来调用泛型方法?

这是我用反射解决的问题,但是想看看如何使用表达式树来完成它.

我有一个通用的功能:

private void DoSomeThing<T>( param object[] args ) {
    // Some work is done here.
}
Run Code Online (Sandbox Code Playgroud)

我需要在班上的其他地方打电话.现在,通常情况下,这很简单:

DoSomeThing<int>( blah );
Run Code Online (Sandbox Code Playgroud)

但只有我知道,在设计时我正在和他一起工作int.当我不知道类型,直到运行时我需要帮助.就像我说的,我知道如何通过反射来做到这一点,但我想通过表达式树来做,因为我(非常有限)的理解是我可以这样做.

我可以获得这种理解的网站的任何建议或指向,最好是样本代码?

c# lambda

12
推荐指数
2
解决办法
4633
查看次数

代码合同理解错误

我刚开始使用Code Contracts,需要一些帮助来纠正错误:

鉴于此代码:

class MyClass
{
    private bool _isUsed = false;

    public void SomeMethod()
    {
        Contract.Requires(!_isUsed);
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

error CC1038: Member 'MyClass._isUsed' has less visibility than the enclosing method 'MyClass.SomeMethod'
Run Code Online (Sandbox Code Playgroud)

这似乎使很多标准检查不可用.我在这个例子中缺少什么?

.net-4.0 code-contracts

8
推荐指数
2
解决办法
1187
查看次数

MsBuild:将引用从ProjectReference更改为Reference

在我们的环境中,我们有两个内部框架和一个单独的网站。在开发过程中,对内部框架的引用倾向于设置为tp项目引用。但是,一旦我们发布了版本,内部框架就会安装到GAC中,因为它们用于每台服务器上网站的多个实例。手动将所有ProjectReferences更改为References,并重新编译和部署网站程序集和网站。

我正在尝试使此过程自动化。处理这些问题的最佳方法是什么?我已经开始学习MsBuild来尝试实现这一目标,但是我完全感到困惑。有关如何进行操作的任何指示和/或建议?

msbuild msbuild-4.0

5
推荐指数
1
解决办法
1286
查看次数

通用委托重复定义 - 为什么?

我有两个通用委托,我试图定义编译器抱怨它们是重复的,但在我看来是完全不同的。我在做什么/理解错了?

delegate TReturn foo<TParameter, out TReturn>(TParameter parameter, IItem item);
Run Code Online (Sandbox Code Playgroud)

delegate TReturn foo<TParameter, out TReturn>(TParameter parameter, int field, IItem item);
Run Code Online (Sandbox Code Playgroud)

如果我向第二个委托添加一个新的通用参数,则一切正常。

delegate TReturn foo<TParameter, TField, out TReturn>(TParameter parameter, TField field, IItem item) where TField struct
Run Code Online (Sandbox Code Playgroud)

但这似乎并不正确。我将始终为字段传递一个 int - 它不应该是一个泛型。

c# generics delegates

4
推荐指数
1
解决办法
538
查看次数