Tag: c#

如何在.NET中实现匿名方法中的捕获值

我很好奇.NET实现及其背后的决定。 例如,在Java中,匿名类中使用的所有捕获值都必须是最终的。 这个要求似乎在.NET中被删除了。 此外,与参考类型相比,值类型的捕获值的实现是否存在差异? 谢谢

toString()只对调试有用吗?

当然,除了它们与原语的使用。 我看到的大多数(如果不是全部)实现仅从程序员的角度来看是有用的。 编辑 :我明白我应该覆盖默认行为,这就是为什么我提到实现:)。 而且我确实得到了在GUI中需要字符串表示的一些组件中覆盖它的价值。 但是,至少在JDK中,我看到许多只在需要调试对象实例时才会使用的实现。 为什么它以Object类为根,因为这对GUI /调试东西似乎有用? 还有其他我不知道的用途吗?

C#DateTime.Ticks在Java中等效

C#中DateTime.Ticks的Java等价物是什么? DateTime dt = new DateTime(2010, 9, 14, 0, 0, 0); Console.WriteLine(“Ticks: {0}”, dt.Ticks); Java中上述代码的等价物是什么?

如何在类本身内部创建类的实例?

是什么使得在类本身内部创建类的实例成为可能? public class My_Class { My_Class new_class= new My_Class(); } 我知道这是可能的并且已经自己完成了但是我仍然不能让自己相信这不是“谁是第一个 – 鸡还是鸡蛋?” 问题的类型。 我很高兴收到一个答案,从编程角度以及从JVM /编译器的角度来澄清这一点。 我认为理解这将有助于我清除OO编程的一些非常重要的瓶颈概念。 我收到了一些答案,但没有一个清楚我所期望的程度。

RSA读取PublicKey

我有使用带算法RSA的 java生成的公钥,并能够使用以下代码重建: X509EncodedKeySpec pubKeySpec = new X509EncodedKeySpec(arrBytes); KeyFactory keyFactory = KeyFactory.getInstance(“RSA”); publicKey = keyFactory.generatePublic(pubKeySpec); 问题如何使用csharp在dotnet端构建PublicKey? 示例公钥将是:,在上面的代码中,我传递元素编码中包含的数据 PUBLIC RSA X.509 MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAMf54mcK3EYJn9tT9BhRoTX+8AkqojIyeSfog9ncYEye 0VXyBULGg2lAQsDRt8lZsvPioORZW7eB6IKawshoWUsCAwEAAQ==

如何从C#执行Java程序?

想知道是否有人知道在运行时从C#代码执行Java命令行程序的好方法? 它与执行本机.EXE文件相同吗? 它会同步还是异步运行(这意味着我可能必须等待线程完成才能找到结果) 具体来说,我想从服务器端的Web应用程序调用一个小实用程序(恰好用Java编写)来对文本文件进行一些处理。 我想等待它完成,因为在Java程序完成处理文本文件之后我想抓取已处理的文本,并在C#应用程序中使用它。

Selenium:将Internet Explorer中的文件下载到没有直接链接的指定文件夹,没有Windows窗体,没有AutoIt或Robot

我经常遇到一个问题,如何在IE中下载文件。 与Firefox的Chrome相比,您不仅可以指定所需的文件夹,而且所有文件都将下载到该文件夹​​。 您还需要与本机Windows窗体等进行交互。 有多种选择,比如使用AutoIt,使用键盘命令,机器人等……但是所有这些选项都不稳定,它们需要使用冗余库进行显式等待,并且在并行运行测试时不合适。 另一个问题是,该怎么办,如果文件没有通过直接链接下载,但链接是从javascript命令生成或从服务器接收,并且无法从html中提取。 所有这些问题都可以解决,在这里,我将展示如何做到这一点。 解决方案是用c#编写的,我相信同样可以在java中实现

Java中的AES加密和C#中的解密

您好我已使用标准AES算法加密的加密hex字符串和密钥。 码: final String key = “=abcd!#Axd*G!pxP”; final javax.crypto.spec.SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), “AES”); final javax.crypto.Cipher cipher = Cipher.getInstance(“AES”); cipher.init(Cipher.ENCRYPT_MODE, keySpec); byte [] encryptedValue = cipher.doFinal(input.getBytes()); return new String(org.apache.commons.codec.binary.Hex.encodeHex(encryptedValue)); 现在我尝试使用C#代码解密它: RijndaelManaged rijndaelCipher = new RijndaelManaged(); // Assumed Mode and padding values. rijndaelCipher.Mode = CipherMode.ECB; rijndaelCipher.Padding = PaddingMode.None; // AssumedKeySize and BlockSize values. rijndaelCipher.KeySize = 0x80; […]

如何将.NET Guid读入Java UUID

我需要将在.NET中生成的Guid传递给Java应用程序。 我使用Guid.ToByteArray()将其作为byte[]存储在磁盘上,然后将其读入Java并将其转换为UUID。 为此,我复制了UUID的(私有)构造函数的实现,该构造函数采用byte[] : private UUID(byte[] data) { long msb = 0; long lsb = 0; assert data.length == 16; for (int i=0; i<8; i++) msb = (msb << 8) | (data[i] & 0xff); for (int i=8; i<16; i++) lsb = (lsb << 8) | (data[i] & 0xff); this.mostSigBits = msb; this.leastSigBits = lsb; } […]

比播种SecureRandom更好的创建AES密钥的方法

我需要将加密数据从Java客户端发送到C#服务器。 现在我正在学习如何使用AES (要求)加密数据。 继这个接受的答案用AES加密/解密我正在做以下事情: byte[] keyStart = “qweroiwejrwoejlsifeoisrn”.getBytes(); // Random character string byte[] toEncrypt = myMessageString.getBytes(); keyGen = KeyGenerator.getInstance(“AES”); sr = SecureRandom.getInstance(“SHA1PRNG”); sr.setSeed(keyStart); keyGen.init(128, sr); SecretKey secretKey = keyGen.generateKey(); byte[] secretKeyByte = secretKey.getEncoded(); SecretKeySpec skeySpec = new SecretKeySpec(secretKeyByte, “AES”); Cipher cipher = Cipher.getInstance(“AES”); cipher.init(Cipher.ENCRYPT_MODE, skeySpec); cipher.doFinal(toEncrypt); 由于该算法使用keyStart使用SecureRandom ,我不确定这是否可以在C#解码,甚至在没有SecureRandom情况下在其他Java程序中解码。 这个加密/解密是否只需要知道keyStart的值,或者因为我使用的是SecureRandom我还需要传递其他内容才能解密? 还有,有更好的方法可以做到这一点还是这个好吗?