问题列表 - 第8064页

在C#中使用Lambda的UnHooking事件#

我经常遇到想要订阅事件的情况,但我想使用lambda来执行此操作:

public class Observable
{
    public event EventHandler SomethingHappened;

    public void DoSomething()
    {
        // Do Something...
        OnSomethingHappened();
    }
}

// Somewhere else, I hook the event
observable.SomethingHappened += (sender, args) => Console.WriteLine("Something Happened");
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我不知道如何取消事件.由于lambda在引擎盖下创建了一个匿名委托,所以我没有什么可以调用-=的.

现在,我可以创建一个方法:

private void SomethingHappened(object sender, EventArgs args)
{
    Console.WriteLine("Something Happened");
}
Run Code Online (Sandbox Code Playgroud)

然后我可以挂钩/取消所有我想要的东西:

observable.SomethingHappened += SomethingHappened;
observable.SomethingHappened -= SomethingHappened;
Run Code Online (Sandbox Code Playgroud)

但我真的非常非常喜欢使用我的lambda.在一个更复杂的例子中,lambdas在这里非常方便.

我很确定我运气不好......但我想知道是否有人想出办法做到这一点?

c# events lambda

5
推荐指数
2
解决办法
3355
查看次数

如何修复警告:"签名和未签名之间的比较"?

我被建议在GCC中使用以下选项,因为它有助于避免许多常见错误.它会打开一堆警告并将-Werror其变成错误.

gcc -pedantic -W -Wall -Wextra -Wshadow -Wstrict-overflow=5 -Wwrite-strings -std=c99 -Werror
Run Code Online (Sandbox Code Playgroud)

鉴于以下测试代码:

#include <stdio.h>

int main(void)
{
    int arr[8]={0,10,20,30,40,50,60,70};
    int x;

    printf("sizeof(arr): %d\n", sizeof(arr));
    printf("sizeof(int): %d\n", sizeof(int));

    for(x = 0; x < sizeof(arr)/sizeof(int); x++)
    {
        printf("%d\n",arr[x]);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我明白了:

test.c:11: error: comparison between signed and unsigned
Run Code Online (Sandbox Code Playgroud)

我知道我能解决这个问题的一种方法就是关闭警告,但是他们还没有让我使用这些设置来最终关闭它们.

另一种方法是投射东西,但我被告知铸造已被弃用.

另外,我可以将x变为unsigned int:

unsigned x;
Run Code Online (Sandbox Code Playgroud)

但是,当我必须使用这些编译器选项将带符号值与无符号值进行比较时,它无法解决一般问题.是否有更清洁的方式而不是铸造?

c

14
推荐指数
2
解决办法
2万
查看次数

是否允许在iPhone应用商店应用中包含libCurl?有人做过吗?

我想在一个应用程序中使用libCurl与Web服务进行通信,不幸的是它不包含在iPhone SDK中.现在我已经想出如何在我的应用程序中包含Curl作为静态库,但是,我想知道这是否会让我的应用程序被Apple拒绝.有没有人在应用程序中包含Curl并且已经Apple批准了?

谢谢.

编辑:猜猜我应该更清楚,我想知道是否有人实际上这样做,因为我不确定Curl SDK是否包含未记录的功能.

iphone web-services libcurl

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

什么是| 运算符在函数调用中的意思?[C++]

我在查看Win32 gui代码时经常会看到这个.我的假设是它是一个标准的按位或者,但我也偶尔在C#中看到它,似乎会有一个更好的(更高级别)方式来做同样的事情.无论如何,这是一个例子:

MessageBox(NULL, "Window Creation Failed!", "Error!", MB_ICONEXCLAMATION | MB_OK);
Run Code Online (Sandbox Code Playgroud)

谢谢,

西莫

c++ winapi

2
推荐指数
3
解决办法
492
查看次数

Linq ExecuteCommand不理解空值

使用linq将空值传递给ExecuteCommand()方法时遇到问题.我的代码类似于下面的代码:

    public void InsertCostumer(string name, int age, string address)
    {
        List<object> myList = new List<object>();

        myList.Add(name);
        myList.Add(age);
        myList.Add(address);

        StringBuilder queryInsert = new StringBuilder();
        queryInsert.Append("insert into Customers(name, address) values ({0}, {1}, {2})");

        this.myDataContext.ExecuteCommand(queryInsert.ToString(), myList.ToArray());
    }
Run Code Online (Sandbox Code Playgroud)

但是,当参数为null(例如地址)时,我收到以下错误:"查询参数不能是'System.Object'类型."

如果没有参数为null,则不会发生错误.我知道我的例子中的设计有点差,我只是创建了一个简化的例子来关注问题.有什么建议?

c# null linq-to-sql

22
推荐指数
1
解决办法
1万
查看次数

是否有类似于Java的AWT Robot类的Python?

有没有人知道类似于Java Robot的Python类?

具体来说,我想在Ubuntu中执行屏幕抓取,并最终跟踪鼠标点击和键盘按下(尽管这是一个稍微不同的问题).

python linux automation screenshot awtrobot

11
推荐指数
1
解决办法
8008
查看次数

返回嵌套的通用表达式<Func <T,bool >>

错误消息"找不到类型或命名空间名称'T'."

???

public static Expression<Func<T, bool>> MakeFilter(string prop, object val)
{
    ParameterExpression pe = Expression.Parameter(typeof(T), "p");
    PropertyInfo pi = typeof(T).GetProperty(prop);
    MemberExpression me = Expression.MakeMemberAccess(pe, pi);
    ConstantExpression ce = Expression.Constant(val);
    BinaryExpression be = Expression.Equal(me, ce);
    return Expression.Lambda<Func<T, bool>>(be, pe);
}
Run Code Online (Sandbox Code Playgroud)

相关链接:

使用反射来解决Linqed属性

http://social.msdn.microsoft.com/forums/en-US/linqprojectgeneral/thread/df9dba6e-4615-478d-9d8a-9fd80c941ea2/

通用Func <T>的运行时创建

.net c# linq lambda

7
推荐指数
1
解决办法
4038
查看次数

具有多个项目的版本控制的最佳实践

我有几个项目具有非常大的重叠代码库.我们刚刚开始使用SVN,所以我想弄清楚我应该如何使用它.

问题是,当我完成一个项目的任务时,我正在另一个项目上开始执行任务,但有一些重叠.通常还会有很多中断驱动的开发.所以,我的代码永远不会处于一个完全稳定的状态,我觉得很舒服.

结果是我们并没有真正使用VC系统,这是一件非常糟糕的事情,我们都知道......所以,建议?

language-agnostic version-control

8
推荐指数
1
解决办法
1022
查看次数

减少Mongrel Rails内存占用并提高性能?

我的rails网站运行Mongrel,我使用的内存量有问题.我的ruby-bin进程占用了大约66 MB的驻留内存.如何减少rails使用的内存量?

如果以这种速度占用内存,在一台机器上运行许多rails服务器是不太经济的.我的php5 fcgi进程位于15-25 MB之间.

我对RoR很不熟悉,会不会使用JRuby的帮助?任何有助于减少内存占用和提高性能的评论都非常受欢迎.

mongrel ruby-on-rails jruby memory-footprint

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

哪里是javax.servlet?

我已经jdk1.6.0_13安装了,但是当我试图找到一个javax.servlet包,或者在我无法得到任何东西之后在Eclipse中按Ctrl+ .我在哪里可以下载此软件包,为什么它不包含在开发人员的标准发行版中?SpaceServlet

java servlets

55
推荐指数
3
解决办法
15万
查看次数