小编Dav*_*Dev的帖子

我可以创建一种接口类型的通用方法吗?

是否可以创建一个带有签名的泛型方法

public static string MyMethod<IMyTypeOfInterface>(object dataToPassToInterface)
{
    // an instance of IMyTypeOfInterface knows how to handle 
    // the data that is passed in
}
Run Code Online (Sandbox Code Playgroud)

我是否必须创建接口(T)Activator.CreateInstance();

c# generics

0
推荐指数
1
解决办法
214
查看次数

如何忽略从List <string>中选择的数字?

我有一个项目列表,如

A1
A2
A3
B1
C1
F1
1A
2A

我使用以下代码获取表示每个组的第一个字母的不同字符串列表:

var result = groups.Select(xx => xx.Name.Substring(0, 1)).Distinct().ToList();
Run Code Online (Sandbox Code Playgroud)

所以这会返回如下列表:

A
B
C
F
1
2

这一切都很好,除了数字......我有一个简单的方法来修改代码只返回字母,所以如果它是一个数字,它将不会被添加到results组中?

c#

0
推荐指数
1
解决办法
91
查看次数

如何模仿jQuery.live(),或在Prototype库的存在下使用2个jQuery版本?

我们将内容呈现在客户端提供的HTML"包装器"中.那个HTML包装器包含对jQuery 1.2.6的引用,所以这是我迄今为止用于jQuery功能的内容.

我面临的问题是我正在动态呈现需要与之关联的点击事件的内容.click事件与$(document).ready()上的元素相关联.因此,我需要.live()函数的功能,该功能在1.3+版本中可用.

所以我想知道我的选择是什么?

有没有办法让我轻松模仿.live()的功能,这样我就不需要jQuery库提供的功能了?

我是否需要在内容中包含新的jQuery库?这不是理想的,因为它会导致需要管理的冲突,并且我们已经在管理与Prototype库的冲突,其他人已经在包装器中包含以下行:

jQuery(document).ready(function ($) {
Run Code Online (Sandbox Code Playgroud)

除非有人能告诉我一个简单的方法吗?

...或者我把它还给客户端是时候让他们升级他们的jQuery了?我不知道这是否会发生.

任何人都可以建议解决这个问题吗?谢谢

jquery conflict prototypejs

0
推荐指数
1
解决办法
1258
查看次数

如何在IE7模式下保持这两个按钮之间的空间?

我有2个水平对齐的按钮.在大多数浏览器中,它们之间存在空格,但如果您查看此内容:

http://jsfiddle.net/2HP43/1/

在"浏览器模式:IE7"和"文档模式:IE7标准"中,您可以看到2个按钮粘在一起.

有人可以建议我如何纠正这个问题,以便这些按钮之间始终保持一致的空间吗?

html css internet-explorer internet-explorer-7

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

如何配置StructureMap以获取多个contstructor参数?

我有以下类型需要由StructureMap实例化:

public class AWebService : IAWebService
{
    private readonly string _applicationId;
    private readonly string _username;
    private readonly string _password;

    public AWebService(string applicationId, string username, string password)
    {
        _applicationId = applicationId;
        _username = username;
        _password = password;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是这个构造函数需要3个参数.我已经看到了如何为StructureMap提供一个参数的示例(例如,在使用StructureMap时传递构造函数参数)但是我不确定我需要做什么来传递3.

它只是一个案例:

For<IAWebService>().Use<AWebService>()
  .Ctor<string>("applicationId").Is(GetIDFromConfig())
  .Ctor<string>("username").Is(GetUsernameFromConfig())
  .Ctor<string>("password").Is(GetPasswordFromConfig());
Run Code Online (Sandbox Code Playgroud)

或者我必须以不同的方式配置它?

c# structuremap

0
推荐指数
1
解决办法
1937
查看次数

如何用另一个 XDocument 中的元素替换一个 XDocument 中的元素?

我有一个包含许多数据项的 XDocument。

我有另一个 XDocument,其中包含非常小的数据项集合。较小文档中的数据项在较大文档中的匹配路径上具有相应的元素。

我想要做的是循环遍历较小的文档,对于我发现的每个元素,我想更新较大的文档,以便将其相应的值替换为较小文档的值。

例如,较大的文档:

<Rootelement>
  <Desktop>
    <A>
      <El1 label="original blah" />
    </A>
  </Desktop>
  <Desktop>
    <B>
      <El2 />
    </B>
  </Desktop>
  <Desktop>
    <C>
      <El3 label="I'm the label" tooltip="I'm the tooltip" />
    </C>
  </Desktop>
</Rootelement>
Run Code Online (Sandbox Code Playgroud)

较小的文档:

<Rootelement>
  <Desktop>
    <C>
      <El3 label="The NEW Label" tooltip="The NEW Tooltip" />
    </C>
  </Desktop>
</Rootelement>
Run Code Online (Sandbox Code Playgroud)

我想取出路径中的元素Rootelement/Desktop/C/El3,并将较大文档中同一路径中的元素替换为较小文档中的元素,因此大文档变为:

<Rootelement>
  <Desktop>
    <A>
      <El1 label="original blah" />
    </A>
  </Desktop>
  <Desktop>
    <B>
      <El2 />
    </B>
  </Desktop>
  <Desktop>
    <C>
      <El3 label="The NEW Label" tooltip="The NEW Tooltip" />
    </C>
  </Desktop>
</Rootelement> …
Run Code Online (Sandbox Code Playgroud)

c# xml linq-to-xml

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

测试.Any()元素是否比尝试迭代空列表更有效或更低效?

哪个更有效 - 尝试迭代空列表,或者在尝试迭代之前测试列表中是否有任何项目?

例如,首先得到一个空列表:

var listOfThings = GetZeroThings(); // this returns 0 things
Run Code Online (Sandbox Code Playgroud)

尝试执行此操作效率较低:

foreach (var thing in listOfThings)
{

}
Run Code Online (Sandbox Code Playgroud)

或者我应该测试是否有任何物品?例如

if (listOfThings.Any())
{
    foreach (var thing in listOfThings)
    {

    }   
}
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
64
查看次数

为什么这个异步方法会锁定用户界面?

我使用以下代码读取网络驱动器上的所有图像并ImageControl使用每个图像弹出,然后在屏幕上显示它们.

我遇到的问题是,无论制作PopulateImages()async方法,并运行Task.WaitAll用户界面仍处于锁定状态,直到所有的图像渲染.

我做错了async/await吗?我需要做些什么来解决这个问题?

public MainWindow()
{
    InitializeComponent();

    Loaded += (s, e) => PopulateImages();
}

private async void PopulateImages()
{
    string StartDirectory = @"//path/to/network/folder";

    Task.WaitAll(Directory
        .EnumerateFiles(StartDirectory)
        .Select(filename => Task.Run(async () =>
        {
            Bitmap resizedImage;
            using (var sourceStream = File.Open(filename, FileMode.Open))
            {
                using (var destinationStream = new MemoryStream())
                {
                    await sourceStream.CopyToAsync(destinationStream);

                    resizedImage = ResizeImage(new Bitmap(destinationStream), 96, 96);
                }
            }

            Dispatcher.BeginInvoke(new Action(() =>
            {
                var imgControl = new ImageControl(filename, resizedImage);

                stackpanelContainer.Children.Add(imgControl);
            }));
        })).ToArray()); …
Run Code Online (Sandbox Code Playgroud)

c# async-await

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