问题列表 - 第20810页

为什么比包含更慢?

我设计了以下测试:

var arrayLength=5000;
object[] objArray=new object[arrayLength];

for(var x=0;x<arrayLength;x++)
{
    objArray[x]=new object();
}
objArray[4000]=null;
const int TestSize=int.MaxValue;

System.Diagnostics.Stopwatch v= new Stopwatch();
v.Start();
for(var x=0;x<10000;x++)
{
    objArray.Contains(null);
}
v.Stop();
objArray.Contains(null).Dump();
v.Elapsed.ToString().Dump("Contains");

//Any ==
v.Reset();
v.Start();
for(var x=0;x<10000;x++)
{
    objArray.Any(o=>o==null);
}
v.Stop();
objArray.Any(x=>x==null).Dump();
v.Elapsed.ToString().Dump("Any");

//Any Equals
v.Reset();
v.Start();
for(var x=0;x<10000;x++)
{
    objArray.Any(obj=>object.Equals( obj,null));
}
v.Stop();
objArray.Any(obj=>object.Equals( obj,null)).Dump();
v.Elapsed.ToString().Dump("Any");
Run Code Online (Sandbox Code Playgroud)

null不存在时的结果:

  • Contains False 00:00:00.0606484
  • Any == False 00:00:00.7532898
  • Any object.Equals False 00:00:00.8431783

当元素4000存在null时:

  • Contains True 00:00:00.0494515
  • Any == True 00:00:00.5929247
  • Any object.Equals True 00:00:00.6700742

当元素10出现null时: …

c# performance

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

具有相关类型的通用键/值的通用映射

我正在尝试创建一个泛型类型,它保留了为以后使用而创建的自身版本的映射.实际上,它是一个单例模式,每种类型都有一个实例.我到目前为止的代码是:

public class FieldBinder<T> {
    static final Map<Class<? extends Object>,FieldBinder<? extends Object>> instanceMap = 
        new HashMap<Class<? extends Object>,FieldBinder<? extends Object>>();

    private FieldBinder() {}

    synchronized public static <V extends Object> FieldBinder<V> getInstance(Class<V> klass) {
        if(!instanceMap.containsKey(klass)) {
            instanceMap.put(klass, new FieldBinder<V>());
        }
        return (FieldBinder<V>)instanceMap.get(klass);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我仍然不确定我"做得对".感觉我应该能够指定集合是(Class - > FieldBinder).IDE警告返回语句的事实只会强化这种想法.

有没有更好的方法来处理这个?

注意:这个问题看起来非常密切相关,但是远远不够,我无法弄清楚如何将信息应用到我自己的问题中.

java generics collections

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

.NET代码编译还是复杂?

Q1)为什么C#最初编译为IL然后在运行时JIT编译并在虚拟机(?)之上运行.或者JIT是否符合本机机器代码?

Q2)如果第二个为真(JIT符合本机机器代码),那么代码运行的.NET沙箱在哪里?

Q3)此外,为什么代码首先编译为IL.为什么不一直编译到本机代码?MS中有一个名为ngen的工具,但为什么可选?

c# clr jit managed-code

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

REST - 修改资源的一部分 - PUT或POST

我正在看到如何使用REST更新资源的一部分(例如状态指示器)的主题.

选项似乎是:

  1. 抱怨HTTP没有PATCH或MODIFY命令.但是,对于REST的HTTP MODIFY动词,接受的答案是什么?能很好地展示为什么这不像看起来那么好.

  2. 将POST与参数一起使用并识别方法(例如,名为"action"的参数).一些建议是使用自定义方法名称指定X-HTTP-Method-Override标头.这似乎导致了基于你正在尝试做的事情在实现中切换的丑陋,并且批评不是一种特别的REST方式来使用POST.事实上,采用这种方法开始感觉像RPC类型的接口.

  3. 使用PUT覆盖资源的子资源,该子资源表示要更新的特定属性.实际上,这实际上是对子资源的重写,这似乎符合PUT的精神.

在这一点上,我认为#3是最合理的选择.

这是最佳做法还是反模式?还有其他选择吗?

rest http http-verbs http-headers

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

WPF在TextBlock上设置默认样式会覆盖Label的样式

在TextBlock上设置默认样式会导致Label和其他控件中的样式也被设置.只有将样式放在Application资源中才会发生这种情况,当我将样式放在Window资源中时,一切都很好.

我还发现VS 2008 Designer和XamlPadX会像您期望的那样显示Label,但只有在现实生活中执行应用程序时才会出现问题.

<Application x:Class="WpfApplication.App"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   StartupUri="Window1.xaml">
   <Application.Resources>
       <ResourceDictionary>
           <Style TargetType="TextBlock">
               <Setter Property="FontSize" Value="8"/>
           </Style>

           <Style x:Key="Title" TargetType="Label">
               <Setter Property="FontSize" Value="32"/>
           </Style>
       </ResourceDictionary>
   </Application.Resources>
</Application>

<Window x:Class="WpfApplication.Window1"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       Height="300"
       Title="Window1"
       Width="300">
   <StackPanel>

       <TextBlock Text="TextBlock No Style" Style="{x:Null}"/>
       <Label Content="Label No Style" Style="{x:Null}"/>

       <TextBlock Text="Default TextBlock"/>
       <Label Content="Default Label" Style="{StaticResource Title}"/>

   </StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)

上面的代码显示:

TextBlock No Style - Default font size (As you would expect)
Label No Style - Size 5 font size (How did this happen?)
Default …
Run Code Online (Sandbox Code Playgroud)

wpf styles default textblock font-size

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

如何在C#中控制类型转换

有没有办法控制C#中的类型转换?例如,如果我有两种类型具有基本相同的细节,但一种用于我的应用程序的内部工作,另一种是用于与非.Net应用程序通信的DTO:

public sealed class Player
{
  public Player(string name, long score)
  {
    Name = name;
    Score = score;
    ID = Guid.NewGuid();
  }

  public string Name { get; private set; }

  public Guid ID { get; private set; }

  public long Score { get; private set; }
}

public sealed class PlayerDTO
{
  public PlayerDTO(string name, long score, string id)
  {
    Name = name;
    Score = score;
    ID = id;
  }

  public string Name { get; private set; }

  // the …
Run Code Online (Sandbox Code Playgroud)

.net c# types type-conversion

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

如何使用充气城堡在Java中创建SHA512摘要字符串?

此单元测试失败:

    public void testDigest() throws NoSuchAlgorithmException {
    String hashExpected = "150a14ed5bea6cc731cf86c41566ac427a8db48ef1b9fd626664b3bfbb99071fa4c922f33dde38719b8c8354e2b7ab9d77e0e67fc12843920a712e73d558e197";
    MessageDigest md = new MessageDigest();
    String hashActual = new String(md.digest("hi"));
    Assert.assertEquals(hashExpected, hashActual);
}
Run Code Online (Sandbox Code Playgroud)

下面是我的MessageDigest类的实现:


import java.io.IOException;
import java.io.InputStream;
import java.security.NoSuchAlgorithmException;
import java.security.Security;

import org.bouncycastle.crypto.Digest; import org.bouncycastle.crypto.digests.SHA512Digest; import org.bouncycastle.crypto.io.DigestInputStream; import org.bouncycastle.jce.provider.BouncyCastleProvider;

public class MessageDigest { private Digest messageDigest;

public MessageDigest() throws NoSuchAlgorithmException {
    Security.addProvider(new BouncyCastleProvider());
    messageDigest = new SHA512Digest();
}

public byte[] digest(String message) {
    byte[] retValue = new byte[messageDigest.getDigestSize()];
    messageDigest.update(message.getBytes(), 0, message.length());
    messageDigest.doFinal(retValue, 0);
    return retValue;
}
Run Code Online (Sandbox Code Playgroud)

}

测试失败,原因如下: …

Run Code Online (Sandbox Code Playgroud)

java hash bouncycastle sha512

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

这是一个糟糕的REST URL吗?

我刚刚阅读了有关REST URL的内容,并看到了以下示例:

/ API /用户/的getUser

现在,如果通过HTTP使用动词GET访问它,这不是一个错误的URL,因为它描述了URL中的动作(GET)吗?

rest

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

哪种访问sharepoint的方法更好?

我正在研究sharepoint的小应用程序.

WE可以通过两种方式访问​​Sharepoint数据:

1.使用Microsoft.Sharepoint.dll在这种情况下,您需要在同一台机器(Windows服务器)上进行编码.

2.第二种方法是使用Sharepoint Web Services.这将允许开发人员在不同的机器上进行开发工作.

但我更喜欢哪种方式?

问候,Jene

c# sharepoint sharepoint-2007

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

使用stl随机化数组条目的简便方法?

我可以使用stl,简单和简单的方式对int*数组进行排序

std::sort(myarray, myarray + size);
Run Code Online (Sandbox Code Playgroud)

是否有任何相同的简单方法来随机化它?

谢谢

c++ arrays random stl

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