小编Fua*_*kov的帖子

在Java中生成一个带有max,min和mean(average)的随机数

我需要生成具有以下属性的随机数.

最小应该是200

Max应该是20000

平均值(平均值)是500.

可选:第75百分位为5000

绝对不是均匀分布,也不是高斯分布.我需要给出一些左偏斜.

java random average max min

20
推荐指数
2
解决办法
3956
查看次数

读取从Java编写的C#中的字节数组

我试图从C#编写一个Integer并从Java中读取它.两种语言中的整数都是4个字节.但是,当我从C#写入时,整数1写入以下字节1000.含义第一个字节为1,其余为0.

但在Java中,同样的事情被写为0001.Maing前3个字节为0,最后一个为1.

是否有一种简单的方法在这些语言之间进行读写,而不是每4字节手动反转一次?Java的代码

ByteBuffer buffer = ByteBuffer.allocate(4);
buffer.putInt(1);

for(byte b: buffer.array()){
      System.out.print(b);
}
Run Code Online (Sandbox Code Playgroud)

C#的代码

MemoryStream ms = new MemoryStream();
using(BinaryWriter writer = new BinaryWriter(ms))
{
    writer.Write((int)1);

}
foreach(byte b in ms.ToArray()){
    Console.Write(b);
}
Run Code Online (Sandbox Code Playgroud)

c# java bytearray endianness

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

以下C#代码线程是否安全?

我正在尝试学习C#中的线程.今天我在http://www.albahari.com/threading/播下了以下代码:

class ThreadTest
{
  bool done;

  static void Main()
  {
    ThreadTest tt = new ThreadTest();   // Create a common instance
    new Thread (tt.Go).Start();
    tt.Go();
  }

  // Note that Go is now an instance method
  void Go() 
  {
     if (!done) { done = true; Console.WriteLine ("Done"); }
  }
}
Run Code Online (Sandbox Code Playgroud)

在Java中,除非将"完成"定义为volatile,否则代码将不安全.C#内存模型如何处理这个问题?

伙计们,谢谢大家的答案.非常感激.

c# multithreading thread-safety

6
推荐指数
2
解决办法
460
查看次数

如何在C#中将通用对象分配给非泛型引用

我是一个Java人,并试图在C#中实现一些代码.我做了一个小时的研究,但找不到任何.我有一个我声明为Generic的接口

interface TypeSerializer<T>
Run Code Online (Sandbox Code Playgroud)

然后我有两个这样的实现.

class StringSerializer: TypeSerializer<String> 
Run Code Online (Sandbox Code Playgroud)

class ByteArraySerializer: TypeSerializer<byte[]> 
Run Code Online (Sandbox Code Playgroud)

现在我想用这些实例创建一个数组,并将数组称为TypeSerializer.是这样的:

TypeSerializer[] serializers = 
new TypeSerializer[2] {new ByteArraySerializer(), new StringSerializer()};
Run Code Online (Sandbox Code Playgroud)

此代码无法编译,但在Java中,类似的代码会编译.

我也试过了......

TypeSerializer<Object>[] serializers = 
new TypeSerializer<Object>[2] {new ByteArraySerializer(), new StringSerializer()};
Run Code Online (Sandbox Code Playgroud)

仍然没办法.

如何在不知道通用类型的情况下声明此数组并到达实例.

编辑

基于下面的答案,很明显我应该有两个接口; 有和没有通用.这是接口方法.你能否告诉我们如何实施它们.

public interface ITypeSerializer<T>:TypeSerializer
{
    void write(BinaryWriter writer, T obj);
    T read(BinaryReader reader);
}
Run Code Online (Sandbox Code Playgroud)

c# generics

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

转换为int的null对象会导致NullReferenceException?

我有以下通用代码:

public V put(K key, V value){
        Object o = doOp(ClusterOperation.CONCURRENT_MAP_PUT, key, value);           
        return (V)o;
}
Run Code Online (Sandbox Code Playgroud)

问题是,Object o可以为null.当我使用像String这样的对象时,可以将null强制转换为String.但是当V表示int时,则null cast to int抛出NullReferenceException.

有没有足够通用的解决方案并处理int?

谢谢

c# generics casting nullreferenceexception

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