Tag: C#的

如何以编程方式将Word文件转换为PDF?

我发现了几个开源/免费软件,允许您将.doc文件转换为.pdf文件,但它们都是应用程序/打印机驱动程序,没有附加SDK。 我发现有几个程序确实有一个SDK允许你将.doc文件转换成.pdf文件,但是它们都是专有的,2000美元左右的许可证。 有谁知道任何清洁,廉价(最好是免费的)程序化解决scheme,我的问题,使用C#或VB.NET? 谢谢!

C ++函数中静态variables的生命周期是什么?

如果一个variables在一个函数的作用域中被声明为static ,那么它只被初始化一次,并在函数调用之间保留它的值。 它的一生到底是什么? 它的构造函数和析构函数何时被调用? void foo() { static string plonk = "When will I die?"; } PS对于那些想知道我为什么问这个问题的人是否已经知道了答案?

如何在C#中dynamic创build一个类?

我有一个看起来像这样的课程: public class Field { public string FieldName; public string FieldType; } 而一个对象List<Field>的值为: {"EmployeeID","int"}, {"EmployeeName","String"}, {"Designation","String"} 我想创build一个如下所示的类: Class DynamicClass { int EmployeeID, String EmployeeName, String Designation } 有没有办法做到这一点? 我希望这是在运行时生成的。 我不想要一个物理的CS文件驻留在我的文件系统中。

C#中的哈希和盐密码

我刚刚通过DavidHayden的哈希用户密码文章之一。 真的,我无法得到他想要达到的目标。 这是他的代码: private static string CreateSalt(int size) { //Generate a cryptographic random number. RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); byte[] buff = new byte[size]; rng.GetBytes(buff); // Return a Base64 string representation of the random number. return Convert.ToBase64String(buff); } private static string CreatePasswordHash(string pwd, string salt) { string saltAndPwd = String.Concat(pwd, salt); string hashedPwd = FormsAuthentication.HashPasswordForStoringInConfigFile( […]

未命名/匿名命名空间与静态函数

C ++的一个小function就是能够创build匿名(匿名)的命名空间,如下所示: namespace { int cannotAccessOutsideThisFile() { … } } // namespace 你会认为这样的function是无用的 – 因为你不能指定名字空间的名字,所以不可能从外部访问它的任何东西。 但是这些无名的命名空间可以在它们创build的文件中访问,就好像你有一个隐式的using子句。 我的问题是,为什么或什么时候这会比使用静态函数更可取? 或者他们基本上是两种做同样的事情?

用硬编码元素初始化std :: vector最简单的方法是什么?

我可以创build一个数组,并像这样初始化它: int a[] = {10, 20, 30}; 如何创build一个std::vector并初始化它类似的优雅? 我知道的最好的方法是: std::vector<int> ints; ints.push_back(10); ints.push_back(20); ints.push_back(30); 有没有更好的办法?

如何在C#中生成随机的字母数字string?

如何在C#中生成随机的8个字符的字母数字string?

C#和Java中的generics和C ++中的模板之间有什么区别?

我主要使用Java和generics相对较新。 我一直在阅读Java做出错误的决定,或.NET有更好的实现等。 那么,C ++,C#和Java在generics中的主要区别是什么呢? 每个人的优点/缺点?

易变与联锁与locking

假设一个类有一个public int counter字段,可以被多个线程访问。 这个int只是递增或递减。 为了增加这个领域,应该使用哪种方法,为什么? lock(this.locker) this.counter++; , Interlocked.Increment(ref this.counter); , 将counter的访问修饰符更改为public volatile 。 现在我发现了volatile ,我一直在删除许多lock语句和Interlocked的使用。 但有没有这样做的理由?

为什么这个C ++代码比testingCollat​​z猜想的手写组件更快?

我在汇编和C ++中为Project Euler Q14编写了这两个解决scheme。 它们是testingCollat​​z猜想的完全相同的蛮力方法。 assembly解决scheme是与组装 nasm -felf64 p14.asm && gcc p14.o -o p14 C ++编译了 g++ p14.cpp -o p14 大会, p14.asm section .data fmt db "%d", 10, 0 global main extern printf section .text main: mov rcx, 1000000 xor rdi, rdi ; max i xor rsi, rsi ; i l1: dec rcx xor r10, […]