Tag: c#

Java中静态{…}的c#等价物是什么?

在Java中我可以写: public class Foo { public static Foo DEFAULT_FOO; static { DEFAULT_FOO = new Foo(); // initialize DEFAULT_FOO.init(); } public Foo() { } void init() { // initialize } } 如何在C#中获得相同的function(静态成员在使用前初始化)? 并且,如果尝试这样做是件坏事,那么更好的方法是什么?

将SWT Composite嵌入到C#应用程序中

我有一个使用SWT作为其widget工具包的Java应用程序。 我还有一个Windows C#应用程序。 我想要一种方法将SWT Composite绘制到这个C#应用程序中。 我可以想到两种方法: 句柄:由于SWT基于本机窗口工具包,似乎应该有一种方法在C#应用程序中创建一个Composite,将本机指针传递给Java应用程序,然后从那里控制Composite。 OLE:由于SWT肯定可以使用OLE组件,也许它还有一种方法可以将自己呈现为OLE组件? 任何人都有关于如何实现这一目标的任何提示? 我并不害怕Java和C#在启动时之间的复杂通信,但我真的希望能够在设置后无缝地从Java控制Composite。

在类似StringBuilder的C模块中增加多少缓冲区?

在C中,我正在处理一个管理字节缓冲区的“类”,允许将任意数据附加到结尾。 我现在正在考虑自动resize,因为底层数组使用realloc调用填满。 对于曾经使用过Java或C# StringBuilder人来说,这应该是有意义的。 我知道如何resize。 但有没有人提出任何建议,提出每个resize增加缓冲区的数量? 显然,在浪费的空间和过多的realloc调用之间需要权衡(这可能导致过度复制)。 我看过一些建议加倍的教程/文章。 如果用户设法提供良好的初始猜测,这似乎是浪费。 是否值得尝试在平台上舍入到两个或多个对齐大小的幂? 有没有人知道Java或C#在幕后做了什么?

使用AES-128算法加密Java中的Excel文件和C#中的解密

我试图用Java加密excel文件,然后用C#解密,但解密文件显示垃圾字符。 我能够在Java中加密.txt和.docx文件,在C#中解密而没有任何问题。 请检查代码并告诉我,如果我做错了什么? 甚至让我知道是否需要添加任何东西。 Java代码加密xls文件 // file to be encrypted File file = new File(“D:\\SynchData\\output.xls”); FileInputStream inFile = new FileInputStream(file); FileOutputStream outFile = new FileOutputStream(“D:\\SynchData\\output.dec”); // password to encrypt the file String password = “MAKV2SPBNI99212”; // password, iv and salt should be transferred to the other end // in a secure manner // salt is […]

将SHA256从Java转换为C#

我有一个简单的问题。 我需要将一个sha256校验和方法从java重写为C# 所以我有这个Java鳕鱼可以使用: Canonicalizer c14Canonicalizer = Canonicalizer.getInstance(Canonicalizer.ALGO_ID_C14N_EXCL_WITH_COMMENTS); byte[] byteArray = c14Canonicalizer.canonicalizeSubtree(doc); // At this point, the byteArray in Java and the data in C# matches up. // That is, after the java bytes are converted to unsigned bytes using // java.lang.Byte.toUnsignedInt() MessageDigest md = MessageDigest.getInstance(“SHA-256”); md.update(byteArray); byte byteData[] = md.digest(); (byteArray是,你猜对了,一个字节数组:D) 根据我的发现,update()和digest()方法应该基本上替代相应的HashAlgorithm派生类(在本例中为SHA256)中的TransformBlock()和TransformFinalBlock()方法。 所以我在C#中尝试过类似的东西: var data […]

为什么Java和C#没有隐式转换为布尔值?

自从我开始使用Java以来​​,它一直非常恶心,因为它不支持从数字类型到布尔值的隐式转换,所以你不能做以下事情: if (flags & 0x80) { … } 相反,你必须经历这种疯狂: if ((flags & 0x80) != 0) { … } null和对象也是一样的。 我所知道的其他类似C语言包括JavaScript允许它,所以我认为Java只是愚蠢的,但我刚刚发现C#是相同的(至少对于数字,不知道null /对象): http: //msdn.microsoft.com/en-us/library/c8f5xwh7(VS.71).aspx 微软故意用C ++改变它,为什么呢? 显然我错过了一些东西。 为什么要改变(我认为是)世界上最自然的事情,让它更长久才能打字? 它到底有什么问题?

服务器 – 客户端推/拉连接如何工作?

我对如何从服务器流向客户端的财务数据非常感兴趣。 我经常使用“推拉”这个术语。 我想知道是否有人可以给我一个例子(最好用Java,C#或Javascript)这是如何实现的? 每当我在家里编写业余爱好项目时,我经常最终查询一个URL(包含价格),并在一段时间(真实)循环中使用thread.sleep(x)连续调用它,即使价格没有变化。 提前致谢

C#客户端通过SSL连接到Java服务器

作为一个团队项目,我需要从C#客户端连接到Java 6.5 SSL服务器,但是当我到达stream.AuthenticateAsClient行时,它会挂起。 C#连接代码 public static void connect(string server, Int32 port) { try { client = new TcpClient(server, port); stream = new SslStream(client.GetStream(), false); stream.AuthenticateAsClient(“MyCNfield”); … … 如果我连接到像https://mail.google.com这样的东西并将MyCNfield设置为mail.google.com ,它可以正常工作,所以我认为它是Java方面。 Java Init部分是: public void initSSL() throws IOException, KeyStoreException, NoSuchAlgorithmException, CertificateException, UnrecoverableKeyException, KeyManagementException { char[] passphrase = “scared”.toCharArray(); System.out.println(java.security.KeyStore.getDefaultType()); boolean handshakedone=false; KeyStore keystore1 = KeyStore.getInstance(“jks”); FileInputStream fis […]

子类型和协变返回类型

我找到了一个解释什么是协变返回类型? 但我不明智地理解这一切。 我认为Covariant返回类型在理论上是由函数返回的类型,该函数具有与内置基类函数相同的签名,其返回类型不同。 class Base{ TypeX func( int i ){return typex;} // builtin function }; class Derived:Base{ TypeY func(int i){return typey;} } 我对这种所谓的协变返回类型的理解是否正确? [这个词让我很困惑。]

最佳表/枚举驱动方法调用系统

考虑我正在与将以某种格式发送消息(数据库表,消息队列,Web服务)的外部系统连接。 在“消息头”中有“MessageType”,它是1到20之间的数字.MessageType定义了如何处理消息的其余部分。 有新的,修改的,删除的,取消的…… 我的第一个倾向是设置枚举并定义所有类型。 然后将数字解析为枚举类型。 将它作为枚举,我将设置典型的开关案例系统,并为每种消息类型调用特定方法。 一个重要的问题是维护。 开关/箱体系统笨重而且很笨重,但它非常简单。 各种其他表/配置系统可能很难让其他人知道并添加新消息或调整现有消息。 对于12个左右的MessageTypes,交换机/案例系统似乎很合理。 切换到表驱动系统的合理截止点是什么? 哪种系统最适合处理这些类型的问题? 我在这里为C#和Java设置了一个标签,因为它绝对是一个常见的问题。 还有许多其他语言具有相同的问题。