小编Mos*_*oss的帖子

将扩展方法组转换为具有泛型类型的委托

我在IDataReader上有两个扩展方法,具有以下签名:

internal static List<T> GetList<T>(this IDataReader reader, Func<string, T> del)

internal static double? GetDoubleOrNull(this IDataReader reader, string columnName)
Run Code Online (Sandbox Code Playgroud)

GetDoubleOrNull 没有任何重载.

在其他地方,我能做到

Func<string, double?> del = reader.GetDoubleOrNull;

var x = reader.GetList(del);
Run Code Online (Sandbox Code Playgroud)

要么

var x = reader.GetList<double?>(reader.GetDoubleOrNull);
Run Code Online (Sandbox Code Playgroud)

或者只是传入一个类似的实例方法

public double? blah(string s)

var x = reader.GetList(blah);
Run Code Online (Sandbox Code Playgroud)

但我不能这样做

var x = reader.GetList(reader.GetDoubleOrNull);
Run Code Online (Sandbox Code Playgroud)

编译器给出错误

cannot convert from 'method group' to 'System.Func<string,double?>'
Run Code Online (Sandbox Code Playgroud)

我不明白这一点.我认为既然没有重载GetDoubleOrNull,就不会有重载决策,它可以从方法签名推断出类型参数.

真正令人困惑的部分是它在传入时的工作方式blah.

c# generics extension-methods delegates internals

13
推荐指数
2
解决办法
2650
查看次数

WPF TextBox.Focus()烦恼

我对.Net和WPF很新,但有问题.代码是一个片段.我TextBox要输入日期.我使用GotFocusLostFocus事件检查正确的输入.

<TextBox Name="sdDay" Width="40" Text="Day" GotFocus="DateDay_GotFocus" LostFocus="DateDay_LostFocus" Padding="5,5,5,5" HorizontalContentAlignment="Center" Focusable="True"/>
<TextBox Name="sdMonth" Width="50" Text="Month" GotFocus="DateMonth_GotFocus" LostFocus="DateMonth_LostFocus" Padding="5,5,5,5" Margin="5,0,0,0" HorizontalContentAlignment="Center" Focusable="True"/>
<TextBox Name="sdYear" Width="50" Text="Year" GotFocus="DateYear_GotFocus" LostFocus="DateYear_LostFocus" Padding="5,5,5,5" Margin="5,0,0,0" HorizontalContentAlignment="Center" Focusable="True"/>
Run Code Online (Sandbox Code Playgroud)

和代码:

private void DateDay_GotFocus(object sender, RoutedEventArgs e)
    {
        if (((TextBox)sender).Text == "Day")
            ((TextBox)sender).Text = string.Empty;
    }

private void DateDay_LostFocus(object sender, RoutedEventArgs e)
    {
        if (((TextBox)sender).Text == string.Empty)
            ((TextBox)sender).Text = "Day";
        else
            CheckForCorrectDateDay((TextBox)sender);
    }

private void CheckForCorrectDateDay(TextBox b)
    {
        int day = 0;

        try
        { …
Run Code Online (Sandbox Code Playgroud)

wpf textbox focus

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

VS2010特定端口随机变化

我正在玩WCF服务.

我遇到的问题是VS2010在启动VS Development Server时会随机为其分配一个新的端口号,即使我已通过项目设置将其设置为特定端口.

如果我继续停止并使用此问题启动VS Development Server几次,我会收到一条错误消息,指出无法启动ASP.NET Development服务器,因为端口'xxxx'正在使用中.

为什么会这样?

编辑:有人建议这可能是由于Dev Server没有停止.不幸的是,它也发生在刚刚启动的计算机上,即当它的任何实例都没有运行时.

此外,在收到错误消息后,如果更改端口或选择" 自动分配端口"选项并不重要.结果是一样的.

wcf visual-studio-2010 visual-studio

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

包含自定义控件的WinForms列表框?

是否可以制作列出一堆自定义控件的列表框?我假设你可能不得不调用某种子对象的自定义绘图,但我不知道该怎么做.任何人都可以对此有所了解吗?

c# listbox custom-controls winforms

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

禁用和css样式按钮中的文本显示IE中的移动

我有禁用和CSS风格的按钮.在Firefox中,禁用按钮在按下时根本不移动(这是预期的),在IE中,按钮中的文本仍然移动几个像素.

为什么会发生这种情况,更重要的是,如何在IE中实际禁用已禁用的样式按钮?

css internet-explorer button

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

jQuery选择器的性能特征与CSS选择器的性能特征有何不同?

我昨天遇到了谷歌的Fire Speed附加组件.关于使用高效CSS选择器的页面表示不使用过度合格的选择器,即使用#foo而不是使用div#foo.我认为后者会更快,但谷歌却说不然,我该反对谁?

所以这让我想知道是否同样适用于jQuery选择器.这个页面我发现SO上的链接说我应该使用$("div#foo"),这就是我一直在做的事情,因为我认为通过限制选择器div仅匹配元素会加快速度.但它真的比写$("#foo")谷歌对CSS选择器的说法更好,或者以不同的方式做CSS与jQuery元素匹配工作,我应该坚持下去$("div#foo")

css jquery css-selectors jquery-selectors

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