小编Con*_*cer的帖子

lambda表达式是如何得到它们的名字的?

我可能在这里表现出我的无知,但为什么lambda表达式称为lambda表达式.我理解如何使用它们,但我很好奇是否对"lambda"一词有任何意义.

lambda

44
推荐指数
2
解决办法
4716
查看次数

如何表示整数无穷大?

我需要一种方法来表示一个可以是无限的整数.我不想使用浮点类型(double.PositiveInfinity),因为数字永远不会是小数,这可能会使API混乱.做这个的最好方式是什么?

编辑:我还没有看到的一个想法是使用int?null表示无穷大.有没有充分的理由不这样做?

c# infinity

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

如果在此之前完成承诺,会发生什么?

假设我有这样一个Promise:

var promise = new Promise(function(resolve, reject) {
    // Do some async thing
});
promise.then(function(response) {
    // Then do some other stuff
});
Run Code Online (Sandbox Code Playgroud)

如果async Promise在我打电话之前完成.then()会怎么样?通常情况下,我只会在Promise函数中执行长时间运行的任务,但如果它一次完成很快就会怎么样?

javascript promise

22
推荐指数
3
解决办法
4836
查看次数

scrollviewer里面的Listview阻止了scrollviewer滚动

我有一个滚动查看器,里面有几个列表框.问题是如果用户使用鼠标中键滚动滚动查看器,而鼠标位于列表视图上方.列表视图将其内部滚动查看器滚动到底部,然后继续捕获鼠标,防止包含滚动查看器滚动.

关于如何处理这个问题的任何想法?

c# wpf listbox scrollviewer

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

多键DataStructure

我正在寻找一个可以用多个键搜索的数据结构.用例子更容易解释:

var myDataStructure = new MultiKeyDataStructure<int, string, MyType>();
myDataStructure.Add(1, "some string 1", new MyType());
myDataStructure.Add(2, "some string 2", new MyType());

var myType = new MyType();
myDataStructure.Add(3, "some string 3", myType);

Tuple<string, MyType> t1 = myDataStructure[1];
Tuple<int, MyType> t2 = myDataStructure["some string 1"];
Tuple<int, string> t3 = myDataStructure[myType];
Run Code Online (Sandbox Code Playgroud)

这样的事情是可能的,如果是这样的话,还有什么东西可以做到吗?你会如何实现像键一样对待所有东西的东西,并通过搜索它们中的任何一个来返回所有相关的键?

理想情况下,您还可以使用任何数量和/或类型的参数:

var myDataStructure = new MultiKeyDataStructure<int, string, Foo, Bar>();
Run Code Online (Sandbox Code Playgroud)

c# generics dictionary generic-collections

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

Google App Engine不会更新已部署的文件

谷歌应用程序引擎服务旧版本的文件我遇到了一些奇怪的问题.我在我的一个servlet中包含了一些日志记录,并在过去24小时内多次部署到谷歌应用引擎.但是,我没有看到我添加的日志记录,而是每次运行servlet时都会看到来自该文件的先前版本的日志.

我已经尝试过更改版本并重新部署,但这似乎无法解决问题.

我正在使用Eclipse Juno和app引擎插件,如果这有所不同的话.

任何想法我可以尝试或我可能做错了什么?

google-app-engine

9
推荐指数
2
解决办法
8892
查看次数

Treeview ContainerFromItem始终返回null

我已经阅读了关于这个主题的几个主题,但找不到任何可以做我想做的事情.我有一个树视图绑定到一组分层的对象.这些对象中的每一个都代表地图上的图标.当用户单击地图上的其中一个图标时,我想在树状视图中选择项目,将焦点放在其上,然后将其滚动到视图中.map对象具有绑定到treeview的对象列表.在示例中,Thing是绑定到树的对象的类型.

public void ScrollIntoView(Thing t)
{
  if (t != null)
  {
    t.IsSelected = true;
    t.IsExpanded = true;

    TreeViewItem container = (TreeViewItem)(masterTreeView
      .ItemContainerGenerator.ContainerFromItem(t));
    if (container != null)
    {
      container.Focus();
      LogicalTreeHelper.BringIntoView(container);
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

到目前为止,无论我尝试过什么,容器总是为空.有任何想法吗?

c# wpf treeview itemcontainergenerator

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

与WPF属性异步

我有这样的绑定属性:

public string MyPath
{
    get { return _mypath; }
    set
    {
        _mypath = value;
        NotifyPropertyChanged(() => MyPath);
        LoadSomeStuffFromMyPath(mypath)
    }
}
Run Code Online (Sandbox Code Playgroud)

我想make loadSomeStuffFromMyPath异步,但我不能等待属性.有一个简单的方法吗?

编辑:不止一个人说不使用房产,所以我想把它叫出来.我正在使用WPF,这个属性绑定到UI.我必须使用一个属性.

c# wpf async-await

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

AES加密错误:输入数据不是完整的块?

这是加密方法:

public static byte[] Encrypt(byte[] plaintext, byte[] key)
{
    using (var aes = Aes.Create())
    {
        aes.BlockSize = 128;
        aes.Mode = CipherMode.ECB;
        aes.Padding = PaddingMode.None;

        var iv = new byte[16];
        for (int i = 0; i < iv.Length; i++)
            iv[i] = 0;
        aes.IV = iv;

        var encryptor = aes.CreateEncryptor(key, aes.IV);
        using(var target = new MemoryStream())
        using (var cs = new CryptoStream(target, encryptor, CryptoStreamMode.Write))
        {
            using (var source = new StreamWriter(cs))
                source.Write(plaintext);
            return target.ToArray();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我是怎么称呼的:

var key = new …
Run Code Online (Sandbox Code Playgroud)

c# encryption

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

为什么彼得森的锁在这次测试中失败了?

我正在尝试不需要原子指令的锁.彼得森的算法似乎是最简单的起点.但是,如果有足够的迭代,就会出现问题.

码:

public class Program
{
    private static volatile int _i = 0;
    public static void Main(string[] args)
    {
        for (int i = 0; i < 1000; i++)
        {
            RunTest();
        }
        Console.Read();
    }

    private static void RunTest()
    {
        _i = 0;
        var lockType = new PetersonLock();
        var t1 = new Thread(() => Inc(0, lockType));
        var t2 = new Thread(() => Inc(1, lockType));

        t1.Start();
        t2.Start();

        t1.Join();
        t2.Join();
        Console.WriteLine(_i);
    }

    private static void Inc(int pid, ILock lockType)
    {
        try
        {
            for (int …
Run Code Online (Sandbox Code Playgroud)

c# multithreading locking

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